Пример использования Selenium WebDriver с Python

В модуле selenium.webdriver вы найдете все реализации WebDriver — инструмента для автоматизации действий браузера. WebDriver предлагает несколько способов поиска элементов с использованием методов find_element_by_*.

Элементы можно искать по ID, имени, Xpath, CSS-селекторам и т. д. Узнать больше можно в руководстве «Locators for Selenium».

Пожалуйста, сохраните скрипт, который мы будет разбирать ниже (например, под именем python_selenium_example.py). Это даст вам возможность запускать его:

python python_selenium_example.py

В примере, который мы будем рассматривать, есть ряд основных шагов:

  • Шаг 1: открываем браузер Chrome.
  • Шаг 2: указываем название.
  • Шаг 3: вводим текст «Test Python».
  • Шаг 4: указываем введенный текст.
  • Шаг 5: закрываем браузер.
from selenium import webdriver

driver = webdriver.Chrome(r'C:\Users\drivers\chromedriver.exe')
driver.maximize_window()
driver.get("http://www.seleniumeasy.com/test/basic-first-form-demo.html")
assert "Selenium Easy Demo - Simple Form to Automate using Selenium" in driver.title

eleUserMessage = driver.find_element_by_id("user-message")
eleUserMessage.clear()
eleUserMessage.send_keys("Test Python")

eleShowMsgBtn=driver.find_element_by_css_selector('#get-input > .btn')
eleShowMsgBtn.click()

eleYourMsg=driver.find_element_by_id("display")
assert "Test Python" in eleYourMsg.text
driver.close()

Теперь давайте разберем этот код более детально.

Мы открываем браузер Google Chrome и используем метод driver.maximize_window(), чтобы максимизировать окно браузера.

driver = webdriver.Chrome(r'C:\Users\pc\Downloads\chromedriver.exe')
driver.maximize_window()

Метод driver.get() откроет веб-сраницу, URL которой мы указали. Это страница с формами, созданная специально в качестве демо.

driver.get("http://www.seleniumeasy.com/test/basic-first-form-demo.html")

Далее мы ищем по идентификатору текстовое поле для ввода данных и очищаем его перед вводом любого текста (используется метод clear). После этого вводим в поле данные, используя метод send_keys().

eleUserMessage = driver.find_element_by_id("user-message")
eleUserMessage.clear()
eleUserMessage.send_keys("Test Python")

Ищем кнопку «Show Your Message» по CSS-селектору. В CSS-селекторах идентификатор указывается с использованием символа решетки «#», а класс — с использованием точки «.».

После этого нажимаем кнопку, используя метод click().

eleShowMsgBtn=driver.find_element_by_css_selector('#get-input > .btn')
eleShowMsgBtn.click()

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

eleYourMsg=driver.find_element_by_id("display")
assert "Test Python" in eleYourMsg.text

После прохождения тестов закрываем браузер — для этого используется метод driver.close().

driver.close()