Selenium

Содержание
Введение
Windows: Подключить драйвер браузера
Linux: Подключить драйвер браузера
Как раскрыть браузер под Selenium на весь экран
Определить подходящий селектор
Ошибки
Похожие статьи

Введение

Selenium WebDriver — это инструмент для автоматизации действий веб-браузера.

В большинстве случаев используется для тестирования Web-приложений, но этим не ограничивается.

Сам по себе Selenium Webdriver в отличие, например, от Selenium IDE ничего для тестирования не содержит, поэтому используется в связке с библиотеками для тестирования, которые есть в большинстве современных языков программирования.

В Python это unittest, nose, pytest и другие. В Java это JUnit.

В частности, он может быть использован для решения рутинных задач администрирования сайта или регулярного получения данных из различных источников (сайтов).

В этой статье вы узнаете как пользоваться Selenium без привязки к какому-то языку программирования.

О написании тестов на Python с использованием Selenium читайте в статье Selenium + Python . Если вас интересует Java рекомендую статью Selenium + Java

Подключить драйвер браузера

Перейдите на selenium.dev и скачайте драйвер для нужного браузера.

Например для Firefox

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Скачайте архив с драйвером. Для Windows x64 выберите .zip файл

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Распакуйте архив. Я распаковал в папку C:\webdrivers

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Добавьте путь до этой папку в системную переменную PATH .

В поиске наберите env

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

В разделе System Variables нажмите New

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Создайте новую переменную с именем WEBDRIVER_PATH в поле значение укажите путь до папки в которой у вас лежить geckodriver.exe

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Выберите переменную Path и нажмите Edit

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Нажмите New и введите %WEBDRIVER_PATH%

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Скачать вебдрайвер браузера для Selenium изображение с сайта www.andreyolegovich.ru

Подключить драйвер браузера в Linux

Сперва нужно скачать WebDriver той же версии что и ваш Chrome.

Аналогично и для Firefox

Затем нужно добавить путь до WebDriver в системную переменную PATH

Проверить версию браузера

Проверить версию google-chrome можно выполнив

google-chrome --version

Google Chrome 89.0.4389.114

Версию браузера можно посмотреть в графическом интерфейсе перейдя в Settings → About Chrome

Версия Google Chrome изображение с сайта www.andreyolegovich.ru

Обновить google-chrome до последней стабильной версии в линукс

sudo apt-get update
sudo apt-get --only-upgrade install google-chrome-stable

Проверить обновление

google-chrome --version

Google Chrome 90.0.4430.93

Посетите selenium.dev и скачайте chromedriver_linux64.zip для Chrome или geckodriver-v0.28.0-linux64.tar.gz для Firefox

Предположим, что они теперь в папке Downloads

ls -l ~/Downloads

-rw-rw-r-- 1 andrei andrei 5564194 Nov 20 10:02 chromedriver_linux64.zip
-rw-rw-r-- 1 andrei andrei 2650003 Nov 20 10:03 geckodriver-v0.28.0-linux64.tar.gz

Создайте директорию /opt/WebDriver/bin и скопируйте туда архивы с драйверами

sudo mkdir /opt/WebDriver/bin
sudo cp ~/Downloads/chromedriver_linux64.zip ~/Downloads/geckodriver-v0.28.0-linux64.tar.gz /opt/WebDriver/bin
ls -l /opt/WebDriver/bin

-rw-rw-r-- 1 andrei andrei 5564194 Nov 20 10:05 chromedriver_linux64.zip
-rw-rw-r-- 1 andrei andrei 2650003 Nov 20 10:05 geckodriver-v0.28.0-linux64.tar.gz

Перейдите в директорию /opt/WebDriver/bin и распакуйте архивы

cd /opt/WebDriver/bin
sudo tar -xvzf geckodriver-v0.28.0-linux64.tar.gz
sudo unzip chromedriver_linux64.zip
ls -laFh /opt/WebDriver/bin

total 27M drwxr-xr-x 2 root root 4.0K Nov 20 10:46 ./ drwxr-xr-x 3 root root 4.0K Nov 20 10:07 ../ -rwxr-xr-x 1 root root 11M Oct 15 23:34 chromedriver* -rw-r--r-- 1 root root 5.4M Nov 20 10:19 chromedriver_linux64.zip -rwxr-xr-x 1 sshit sshit 7.6M Nov 3 18:13 geckodriver* -rw-r--r-- 1 root root 2.6M Nov 20 10:19 geckodriver-v0.28.0-linux64.tar.gz

После успешной распаковки можно убедиться в наличии двух исполняемых файлов chromedriver и geckodriver

Теперь директорию /opt/WebDriver/bin нужно добавить в PATH

Для этого откройте .bashrc и добавьте туда следующий код

vi ~/.bashrc

PATH="/opt/WebDriver/bin:${PATH}" export PATH

Перезапустите терминал

exec bash

Как раскрыть Selenium на весь экран

Первый способ - открыть в kiosk режиме

from selenium import webdriver from selenium.webdriver.chrome.options import Options chromeOptions = webdriver.ChromeOptions() chromeOptions.add_argument("--kiosk") driver = webdriver.Chrome(options=chromeOptions)

Второй способ - указать драйверу ширину равную ширине Вашего экрана

driver.set_window_size(1920, 1024)

Действия

clear, click, findElement, findElements, getAttribute, getCssValue, sendKeys, submit, isDisplayed, isEnabled, getLocation, isSelected, getSize, getTagName, getText,

Определить подходящий селектор

Если вручную что-то не получается, можно попробовать онлайн сервисы, например try.jsoup.org

Ошибки

Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: element not interactable

Обычно появляется если вы пытаетесь выполнить sendKeys на элемент, который это не поддерживает.

Похожие статьи
Selenium
Selenium Python
Несколько драйверов одновременно
Добавить Selenium в PyCharm
Тестирование ПО
Учебник по тестированию
Тестирование API
Тестирование с помощью Python
Robot Framework
Selenium + Java
Python
Python
Интерактивный режим
str: строки
\: перенос строки
Списки []
if, elif, else
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Дата и время в Python
json.dumps
Selenium + Python
Сложности при работе с Python
DJANGO
Flask
Скрипт для ZPL принтера
socket :Python Sockets
Виртуальное окружение
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: