You are currently viewing Взаимодействие с веб – страницей-Selenium Python

Взаимодействие с веб – страницей-Selenium Python

Модуль Python Селена построен для автоматического тестирования с помощью Python. Привязки Selenium Python предоставляют простой API для написания функциональных/приемочных тестов с использованием Selenium WebDriver. Чтобы открыть веб – страницу с помощью Selenium Python, проверьте – Переход по ссылкам с помощью метода get-Selenium Python. Просто иметь возможность бывать в разных местах не очень полезно. Что мы действительно хотели бы сделать, так это взаимодействовать со страницами или, более конкретно, с HTML-элементами внутри страницы. Прежде всего, нам нужно его найти. WebDriver предлагает несколько способов поиска элементов. Например, учитывая элемент, определенный как:

<input type="text" name="passwd" id="passwd-id" />

Чтобы найти элемент, необходимо использовать одну из стратегий определения местоположения, например:

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")

Кроме того, чтобы найти несколько элементов, мы можем использовать:

elements = driver.find_elements_by_name("passwd")

Также можно искать ссылку по ее тексту, но будьте осторожны! Текст должен точно совпадать! Также следует быть осторожным при использовании XPATH в веб-драйвере. Если запросу соответствует более одного элемента, то будет возвращен только первый. Если ничего не найдено, будет вызвано исключение NoSuchElementException.
Веб-драйвер имеет “Объектно-ориентированный” API, мы представляем все типы элементов, используя один и тот же интерфейс. Это означает, что, хотя можно увидеть множество возможных методов, которые можно было бы вызвать при нажатии комбинации клавиш автозаполнения IDE, не все из них будут иметь смысл или будут действительны. Чтобы проверить все способы, оформите заказ Стратегии поиска – Selenium Python
Итак, после получения элемента, что дальше? Можно захотеть ввести текст в поле, например:

element.send_keys("some text") 

Можно имитировать нажатие клавиш со стрелками с помощью класса “Клавиши” :

element.send_keys(" and some", Keys.ARROW_DOWN) 

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

element.clear()

Пример проекта:
Давайте попробуем найти что-нибудь автоматически в yandex.ru
Программа:

# import webdriver
from selenium import webdriver

# create webdriver object
driver = webdriver.Firefox()


# get yandex.ru
driver.get("https://www.yandex.ru/")

# get element
element = driver.find_element_by_id("text")

# send keys
element.send_keys("Arrays")

Выход: