Настройка событий

В предыдущем посте мы рассмотрели, как передать параметры экземпляру Selenium WebDriver, чтобы установить различные настройки для браузера.

EventFiringWebDriver — это оболочка для экземпляра WebDriver, которая поддерживает запуск событий.

Вы можете использовать это для выполнения некоторых действий до или после определенных событий, таких как поиск элемента, переход по URL-адресу, щелчок по элементу или выход из браузера.

Он принимает driver и event_listener в качестве аргументов. event_listener — это экземпляр класса, который является подклассом класса AbstractEventListener.

Следующие методы класса AbstractEventListener должны быть реализованы полностью или частично.

* before_navigate_to(self, url, driver)
* after_navigate_to(self, url, driver)
* before_navigate_back(self, driver)
* after_navigate_back(self, driver)
* before_navigate_forward(self, driver)
* after_navigate_forward(self, driver)
* before_find(self, by, value, driver)
* after_find(self, by, value, driver)
* before_click(self, element, driver)
* after_click(self, element, driver)
* before_change_value_of(self, element, driver)
* after_change_value_of(self, element, driver)
* before_execute_script(self, script, driver)
* after_execute_script(self, script, driver)
* before_close(self, driver)
* after_close(self, driver)
* before_quit(self, driver)
* after_quit(self, driver)
* on_exception(self, exception, driver)

Следующий пример реализует методы before_navigate_to, after_navigate_to, before_find, after_find, before_quit и after_quit для печати пользовательских сообщений с этими событиями.

# output
Before navigating to https://www.pythondoctor.com/
Current url before navigating to https://www.pythondoctor.com/ is 'about:blank'
Page title before navigating to https://www.pythondoctor.com/ is ''
After navigating to https://www.pythondoctor.com/
Current url after navigating to https://www.pythondoctor.com/ is 'https://www.pythondoctor.com/'
Page title after navigating to https://www.pythondoctor.com/ is 'Python Doctor'
Searching for element with 'id=id_questioner' on https://www.pythondoctor.com/
Found element with 'id=id_questioner' on https://www.pythondoctor.com/
Quitting the browser with url: https://www.pythondoctor.com/
Bye ...
Quit the browser. Have a nice day :)

То, что нужно запомнить

  • EventFiringWebDriver — это оболочка для экземпляра WebDriver, которая поддерживает запуск событий для выполнения некоторых действий до или после определенных событий.
  • Он принимает driver и event_listener в качестве аргументов. event_listener – это экземпляр класса, который является подклассом класса AbstractEventListener.

В следующем посте мы рассмотрим, как выполнить код JavaScript на странице с помощью Selenium.

Спасибо за уделенное время.

использованная литература

  1. https://github.com/SeleniumHQ/selenium/blob/trunk/py/selenium/webdriver/support/event_firing_webdriver.py