В предыдущих статьях руководства по Selenium Python Tutorial мы рассмотрели «Как обрабатывать флажки, статические выпадающие списки и другие элементы пользовательского интерфейса в Selenium Python». В этом руководстве мы изучим JavaScript Executor в Selenium Python.
Объектная модель документа или DOM может получить доступ ко всем элементам на веб-странице с помощью Javascript. Если мы проверим какой-либо элемент на веб-странице и перейдем к консоли в инструментах разработчика, все методы, доступные для доступа к веб-элементам, будут доступны.
Таким образом, у него есть возможности, которые может выполнять Selenium. Selenium имеет встроенную функцию выполнения кода Javascript [для доступа к DOM]. Это требуется всякий раз, когда Selenium не может идентифицировать элемент или выполнить над ним какие-либо действия.
Selenium содержит метод execute_script() для выполнения команд Javascript, которые передаются в качестве аргумента этому методу. Кроме того, при работе с DOM-методами [getElementsByName и getElementsById и т. д.] извлекается массив совпадающих элементов. Поэтому нам нужно указать индекс, чтобы найти конкретный элемент. Например: getElementsByName ('txt-box') [0] относится к первому подходящему элементу на веб-странице.
Теперь давайте посмотрим, как извлечь значения из поля редактирования с помощью исполнителя Javascript.< textarea wrap=soft class="crayon-plain print-no" data-settings=dblclick только для чтения стиль=-moz-tab-size:4;-o-tab-size:4;-webkit-tab-size:4;tab -size:4;размер шрифта:12px!важно;высота строки:15px!важно># импортировать веб-драйвер из селена www.softwaretestingmaterial.com/sample-webpage-to-automate/") # для ввода текста в поле редактирования driver.find_element_by_name ("username").send_keys("Python" ) # извлечь значение с помощью Javascript Executor print(driver.execute_script('return document.getElementsByName("username")[0].value'))
123456789 | # импортировать веб-драйвер из селена import webdriverdriver = webdriver.Chrome (executable_path=”C:\chromedriver.exe”)# получить метод для запуска URLdriver.get(“https://www. softwaretestingmaterial.com/sample-webpage-to-automate/”)# для ввода текста в поле редактированияdriver.find_element_by_name(“username”).send_keys(“Python”)# извлечь значение с помощью Javascript .getElementsByName(“имя пользователя”)[0].value')) |
Мы также можем выполнять операции кликов на веб-элементах с помощью исполнителей Javascript.
12345678 | # импортировать веб-драйвер из селена -automate/”)# для нажатия кнопки с помощью Javascript executorbtn = driver.find_element_by_name (“spbutton”).click()driver.execute_script (“arguments[0].click();”,btn) |
Есть некоторые операции, такие как прокрутка страницы вниз, которые невозможно выполнить с помощью Selenium. Для этого действия можно использовать Javascript Executor.
1234567 | # импортировать веб-драйвер из селена import webdriverdriver = webdriver.Chrome (executable_path=”C:\chromedriver.exe”)# получить метод для запустите URLdriver.get (“https://www.softwaretestingmaterial.com/”)# для прокрутки с помощью Javascript executordriver.execute_script (“window.scrollTo(0,document.body.scrollHeight);”) |
Мы также можем получить текущий URL-адрес и заголовок веб-страницы с помощью Javascript Executor. ;-o-tab-size:4;-webkit-tab-size:4;tab-size:4;размер шрифта:12px!важно;высота строки:15px!важно># импортировать веб-драйвер из селена www.softwaretestingmaterial.com/") # для прокрутки с помощью исполнителя Javascript driver.execute_script("window.scrollTo(0,document.body.scrollHeight);") # вывести заголовок страницы в консоль print(driver.execute_script('return document.title')) # вывести URL страницы в консоль print(driver.execute_script('return document.URL')) # чтобы закрыть браузер driver.close()
12345678910111213 | # импортировать веб-драйвер из селена с помощью Javascript executordriver.execute_script(“window.scrollTo(0,document.bo dy.scrollHeight);”)# вывести заголовок страницы в consoleprint(driver.execute_script('return document.title'))# вывести URL страницы в consoleprint(driver.execute_script('return document.URL'))# закрыть the browserdriver.close() |
В следующей статье мы изучим Синхронизацию в Selenium Python.
TAG: qa