atesting.ru Блог Исполнитель JavaScript в Selenium Python

Исполнитель JavaScript в Selenium Python

В предыдущих статьях по 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.

123456789 # импортировать веб-драйвер из селена import webdriverdriver = webdriver.Chrome (executable_path = & # 34; C: \ chromedriver.exe & # 34;) # get метод для запуска URLdriver.get (& # 34; https: //www.softwaretestingmaterial .com/sample-webpage-to-automate/& # 34;) # чтобы ввести текст в поле редактированияdriver.find_element_by_name (& # 34; username & # 34;). send_keys (& # 34; Python & # 34;) # извлечь значение с помощью Javascript Executorprint (driver.execute_script (& # 39; return document.getElementsByName (& # 34; username & # 34;) [0] .value & # 39;))

Мы также можем выполнять операции щелчка по веб-элементам с помощью исполнителей Javascript.

12345678 # импортировать веб-драйвер из селена import webdriverdriver = webdriver.Chrome (executable_path = & # 34; C: \ chromedriver.exe & # 34;) # get метод для запуска URLdriver.get (& # 34; https: //www.softwaretestingmaterial.com/sample-webpage-to-automate/") # чтобы нажмите кнопку с Javascript executorbtn = driver.find_element_by_name (& # 34; spbutton & # 34;). click () driver.execute_script (& # 34; arguments [0] .click (); & # 34;, btn)

Есть некоторые операции, такие как прокрутка страницы вниз, которые невозможно выполнить с помощью Selenium. Для этого действия можно использовать Javascript Executor.

1234567 # импортировать веб-драйвер из селена import webdriverdriver = webdriver.Chrome (executable_path = & # 34; C: \ chromedriver.exe & # 34;) # get метод для запуска URLdriver.get (& # 34; https: //www.softwaretestingmaterial .com/& # 34;) # для прокрутки с помощью Javascript executordriver.execute_script (& # 34; window.scrollTo (0, document.body.scrollHeight); & # 34;)

Мы также можем получить текущий URL-адрес и заголовок веб-страницы с помощью Javascript Executor.

12345678910111213 # импортировать webdriverfrom selenium import webdriverdriver = webdriver.Chrome (executable_path = & # 34; C: \ chromedriver.exe & # 34;) # получить метод для запуска URLdriver .get (& # 34; https: //www.softwaretestingmaterial.com/") # для прокрутки с помощью Javascript executor.execute_ script (& # 34; window.scrollTo (0, document.body.scrollHeight); & # 34;) # распечатать заголовок страницы в consoleprint (driver.execute_script (& # 39; return document.title & # 39;)) # напечатайте URL-адрес страницы в consoleprint (driver.execute_script (& # 39; return document.URL & # 39;)) # чтобы закрыть браузерdriver.close ()

< p> В следующей статье мы изучим синхронизацию в Selenium Python

TAG: qa