Селен

Selenium Web Automation с помощью Python

Selenium Web Automation с помощью Python
Каждый использует Интернет в тот или иной момент, поэтому разработчикам очень важно убедиться, что их веб-приложения работают должным образом. В другом случае для этого может быть очень полезна веб-автоматизация.

Чтобы любое коммерческое программное обеспечение было успешным, оно должно пройти пару тестов. Автоматизация может быть полезна для пользовательских тестов, имитируя использование программного обеспечения так же, как пользователь. Это также полезно для тестов на проникновение, таких как попытка взлома паролей, выполнение SQL-инъекций и т. Д.

Помимо тестирования, веб-автоматизация может быть очень удобна для очистки веб-сайтов с тяжелым JavaScript.

Selenium - один из самых эффективных инструментов для веб-автоматизации. Он также очень популярен среди разных языков, доступен на таких языках, как Java, JavaScript.

Монтаж

Selenium можно установить в python с помощью модуля pip, как показано в следующей команде:

pip установить селен

Он установит библиотеку и необходимые зависимости, установку можно подтвердить, импортировав ее в интерактивном сеансе.

$ питон
Python 3.5.2 (по умолчанию, 14 сентября 2017 г., 22:51:06)
[GCC 5.4.0 20160609] в Linux
Введите «помощь», «авторские права», «кредиты» или «лицензия» для получения дополнительной информации.
>>> импорт селена

Поскольку ошибок не было, значит, наша установка прошла успешно. Однако на этом все не заканчивается; это связано с тем, что селен работает рука об руку с такими браузерами, как Chrome и Firefox, и ему нужен драйвер от браузера, чтобы иметь возможность выполнять свои обязанности.

Мы собираемся посмотреть, как установить драйверы. Для Mozilla Firefox вы можете загрузить драйвер, известный как геккодрайвер со страницы github. Если вы пользователь Chrome, вы можете скачать его драйвер, известный как хромированная отвертка с официального сайта.

После загрузки вы добавляете драйвер в путь. Лично я бы хотел сохранить такой файл в моем / USR / местные / бен каталог, и я бы посоветовал вам сделать то же самое.

Если вы хотите сделать то же самое, приведенная ниже команда должна переместить его из текущего каталога в мусорное ведро каталог.

$ sudo mv geckodriver / usr / местный / бен
$ sudo mv хромированный драйвер / usr / local / bin

Добавить геккодрайвер или же хромированная отвертка для пути из этого каталога выполните следующую команду.

$ экспорт ПУТЬ = $ ПУТЬ: / usr / local / bin / geckodriver
$ экспорт ПУТЬ = $ ПУТЬ: / usr / local / bin / chromedriver

После добавления драйвера для желаемого браузера в путь вы можете убедиться, что все работает нормально, выполнив в интерактивном сеансе следующее:.

Для Firefox:

$ питон
Python 3.5.2 (по умолчанию, 14 сентября 2017 г., 22:51:06)
[GCC 5.4.0 20160609] в Linux
Введите «помощь», «авторские права», «кредиты» или «лицензия» для получения дополнительной информации.
>>> из selenium import webdriver
>>> webdriver.Fire Fox()

Для Chrome:

$ питон
Python 3.5.2 (по умолчанию, 14 сентября 2017 г., 22:51:06)
[GCC 5.4.0 20160609] в Linux
Введите «помощь», «авторские права», «кредиты» или «лицензия» для получения дополнительной информации.
>>> из selenium import webdriver
>>> драйвер = webdriver.Хром()

После запуска, если открывается браузер, значит, все работает нормально. Теперь мы можем приступить к работе с Selenium.

Большая часть кода для остальной части этой статьи будет выполняться в интерактивном сеансе, однако вы можете записать его в файл так же, как ваш обычный скрипт на Python.

Кроме того, мы будем работать над Водитель переменная из приведенного выше кода.

Посетившие веб-страницы

После открытия веб-страницы вы можете посетить любую веб-страницу, позвонив в получать метод на Водитель. Затем открытый браузер загружает переданный адрес, как если бы вы это делали сами.

Не забывайте использовать http: // или https: //, иначе вам придется столкнуться с неприятными ошибками.

>>> водитель.get ("http: // google.com ")

Это загрузит главную страницу Google.

Получение исходного кода

Теперь, когда мы научились посещать веб-страницы, мы можем очищать данные с посещенных веб-страниц.

От Водитель объект, мы можем получить исходный код, вызвав Исходный текст страницы атрибут, вы можете делать все, что хотите, с html, используя библиотеку BeautifulSoup.

>> водитель.Исходный текст страницы

Заполнение текстовых полей

Если, например, мы загрузили домашнюю страницу Google и хотим ввести некоторую информацию в поле поиска; это легко сделать.

Для этого мы используем элемент инспектора, чтобы проверить исходный код и увидеть информацию тега в поле поиска. Для этого просто щелкните правой кнопкой мыши поле поиска и выберите проверить элемент.

На моей машине у меня получилось следующее:

value = "" aria-label = "Искать" aria-haspopup = "false" role = "combobox" aria-autocomplete = "list"
style = "border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%;
фон: прозрачный
url ("данные: изображение / gif; base64, R0lGODlhAQABAID / AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow% 3D% 3D ") повторная прокрутка 0% 0%; позиция: абсолютная; z-index: 6; слева: 0px; контур:
средний нет; "dir =" ltr "spellcheck =" false "type =" text ">

С помощью селена мы можем выбирать элементы по имени тега, идентификатору, имени класса и т. Д.

Их можно реализовать следующими способами:

.find_element_by_id
.find_element_by_tag_name
.find_element_by_class_name
.find_element_by_name

На веб-странице Google поле поиска имеет идентификатор lst-ib, поэтому мы найдем элемент по идентификатору.

>>> search_box = драйвер.find_element_by_id ("lst-ib")

Теперь, когда мы нашли элемент и сохранили его в поисковая строка переменная, мы можем выполнить некоторые операции с полем поиска.

>>> search_box.send_keys ("Планета Земля")

Это позволит ввести текст «Планета Земля» в поле.

>>> search_box.Чисто()

Это очистит введенный текст из поля поиска. Вы должны использовать send_keys снова, в следующем разделе мы будем нажимать кнопку поиска, чтобы у нас было что искать.

Нажимая правые кнопки

Теперь, когда мы заполнили поле поиска некоторой информацией, мы можем продолжить поиск.

Так же, как мы нашли окно поиска, точно так же, как мы собираемся найти кнопку поиска.

На моей машине у меня получилось следующее:

type = "submit">

Глядя на это, мы можем использовать атрибут name. Мы можем получить его, используя приведенный ниже код:

>>> search_button = драйвер.find_element_by_name ("btnK")

Найдя желаемый тег, мы можем щелкнуть по кнопке с помощью щелкнуть метод.

>>> search_button.нажмите ()

Однако будьте осторожны, из-за автоматических предложений Google вы можете в конечном итоге искать что-то еще.

Чтобы обойти это, вам нужно заставить клавиатуру сразу же нажимать клавишу ввода. Ключи выходят за рамки этой статьи, но все равно вот код.

>>> из селена.webdriver.общий.ключи импорт Ключи
>>> search_box = драйвер.find_element_by_id ("lst-ib")
>>> search_box.send_keys ("Планета Земля")
>>> search_box.send_keys (Ключи.ВОЗВРАЩАТЬСЯ)

С помощью приведенного выше кода нам не нужно нажимать кнопку поиска. Он работает так же, как если бы мы нажимали клавишу ввода после ввода значений поиска.

Этот метод нажатия кнопок работает не только с кнопками, но и со ссылками.

Снимаем скриншоты

Вы правильно прочитали! Вы можете делать скриншоты, используя селен, и это так же просто, как и в предыдущих разделах.

Что мы сделаем, так это назовем save_screenshot в объекте драйвера, мы передадим имя изображения, и будет сделан снимок экрана.

>>> водитель.save_screenshot ("Планета-Земля.png ")

Убедитесь, что имя изображения имеет .png, иначе вы можете получить поврежденное изображение.

Когда вы закончите с операциями, вы можете закрыть браузер, запустив следующий код:

>>> водитель.Закрыть()

Заключение

Селен известен как очень мощный инструмент, и умение его использовать считается жизненно важным навыком для тестировщиков автоматизации. Selenium может делать гораздо больше, чем описано в этой статье, движения клавиатуры фактически могут быть воспроизведены, как показано с помощью Ключи.ВОЗВРАЩАТЬСЯ. Если вы хотите узнать больше о селене, вы можете проверить его документация, это довольно понятно и легко использовать.

Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...
Как изменить указатель мыши и размер курсора, цвет и схему в Windows 10
Указатель мыши и курсор в Windows 10 - очень важные аспекты операционной системы. То же самое можно сказать и о других операционных системах, так что,...