您可以通过EventFiringWebDriver 更轻松地实现这一目标
EventFiringWebDriver 是对任意 WebDriver 实例的封装,它支持注册 WebDriverEventListener,例如用于记录目的。
WebDriver driver = new FirefoxDriver();
//create an object of EventFiringWebDriver and pass the driver instance
EventFiringWebDriver wd = new EventFiringWebDriver(driver);
//create an object of class WebDriverListener and pass the driver instance
WebDriverListener eventListener = new WebDriverListener(driver);
wd.register(eventListener);
通过实现WebDriverEventListener接口创建一个WebDriverListener类
它有许多方法,如beforeClickOn、afterClickOn、beforeNavigateTo、afterNavigateTo、beforeFindBy、afterFindBy。这些方法将在相应操作后自动调用,例如:beforeFindBy 和 afterFindBy在找到元素之前和之后自动调用
String title=""; //initially keep title empty
//will automatically be called after click on an element
public void afterClickOn(WebElement element, WebDriver driver) {
//title is not equal to previous page title
if(driver.getTitle()!=title){
//take screenshot
//assign the current title to string title
title=driver.getTitle();
}
}
同样,您可以覆盖上面指定的其他方法,也可以检查诸如 afterNavigateTo 之类的标题,并在页面标题更改时截取屏幕截图。
希望这对您有所帮助...如果您需要任何进一步的帮助,请回复