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

Скачайте 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

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

Как раскрыть 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 на элемент, который это не поддерживает.

Если остались вопросы - смело задавайте их в комментариях.

Поиск по сайту

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: