每当抛出异常时,如何让selenium拍照

hoa*_*yen 1 java selenium-webdriver

我正在使用远程连接到网格机器来运行硒测试.有错误时,很难分析错误.如果我们在发生错误时有一些图片会更好.

Dav*_*ebb 5

这里有两个问题需要解决.首先,我们需要一些代码来截取屏幕截图;其次,我们需要在测试失败时运行该代码.

以截图是在使用Selenium很容易TakesScreenshot接口.所以你需要这样的东西:

TakesScreenshot ts = (TakesScreenshot)driver;
byte[] image = ts.getScreenshotAs(OutputType.BYTES);

try {
  File screenshot = new File("/some/path/myscreenshot.png");
  FileOutputStream fos = new FileOutputStream(screenshot);
  fos.write(image);
  fos.close();
} catch (IOException ex) {
  fail("Failed to write screenshot");
}
Run Code Online (Sandbox Code Playgroud)

根据不同的驱动程序,您正在使用您可能需要使用Augmenter了.

测试失败时运行代码将取决于您使用的测试框架,而不是Selenium.例如,如果您正在使用TestNG,您可以编写一个实例ITestListener来收听测试结果,并在一个失败时截取屏幕截图.