@Override public void afterClickOn(WebElement element, WebDriver driver) { try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("单击的页面元素后的Url为:" + driver.getCurrentUrl()); } @Override public void beforeChangeValueOf(WebElement element, WebDriver driver) { System.out.println("更改前的值为:" + element.getAttribute("value")); } @Override public void afterChangeValueOf(WebElement element, WebDriver driver) { System.out.println("更改后的值为:" + element.getAttribute("value")); } @Override public void beforeScript(String script, WebDriver driver) {} @Override public void afterScript(String script, WebDriver driver) {} @Override public void onException(Throwable throwable, WebDriver driver) { //string path="D:\\" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".png"; java.util.Date currentTime = new java.util.Date(); java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy_MM_ dd_hh_mm_ss"); String dateString = formatter.format(currentTime); java.io.File scrFile = ((org.openqa.selenium.TakesScreenshot) driver).getScreenshotAs (org.openqa.selenium.OutputType.FILE); try { java.io.File screenshot = new java.io.File("D:\\" + dateString + ".png"); org.apache.commons.io.FileUtils.copyFile(scrFile, screenshot); } catch (java.io.IOException e) { e.printStackTrace(); } System.out.println("发生异常,原因为:" + throwable.getMessage()); System.out.println("截图已保存至:" + "D:\\" + dateString + ".png"); } } |
执行结果如图5-75所示。
图5-75 执行结果
5.12 结束测试
当测试执行完毕后,需要结束测试,结束测试的方法有两种,一种是使用Close()方法关闭WebDriver当前所在的窗口,另一种是直接使用Quit()方法关闭所有相关窗口。
一般来说,测试没有结束但需要关闭某个窗口时,使用Close()方法关闭指定窗口即可。而测试结束时,才使用Quit()方法关闭所有相关窗口。
下面举例说明。打开百度首页单击“注册”超级链接,如图5-76所示。
图5-76 百度首页