В модуле 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()