做UI层自动化代码运行起来抛出的各种异常让人捉急,在排查问题过程中debug模式的调试加日志信息是常用的手段。介绍一种一种方法能监听WebDriver的事件,可以在WebDriver事件发生前后做一些事情,利用这个特性可以完成很多东西,比如报错自动截图等。
from selenium import webdriver
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
from selenium.webdriver.common.by import By
brower = webdriver.Chrome()
class EventListeners(AbstractEventListener):
def before_click(self, element, driver):
print("before_click %s" % element)
def after_click(self, element, driver):
print("after_click %s" % element)
driver = EventFiringWebDriver(brower, EventListeners())
driver.get('https://www.baidu.com')
driver.implicitly_wait(10)
driver.find_element(By.CSS_SELECTOR, '#kw').send_keys('test')
driver.find_element(By.CSS_SELECTOR, '#su').click()