我正在使用远程连接到网格机器来运行硒测试。有错误时,很难分析错误。如果我们在发生错误时有一些图片会更好。
答案 0 :(得分:5)
这里要解决两个问题。首先,我们需要一些代码来截取屏幕截图;其次,我们需要在测试失败时运行该代码。
使用the TakesScreenshot
interface在Selenium中截取屏幕非常简单。所以你需要这样的东西:
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");
}
根据您使用的驱动程序,您可能还需要使用the Augmenter
class。
测试失败时运行代码将取决于您使用的测试框架,而不是Selenium。例如,如果您正在使用TestNG,则可以编写ITestListener
实例来收听测试结果,并在失败时截取屏幕截图。
答案 1 :(得分:0)
http://blogs.steeplesoft.com/2012/01/grabbing-screenshots-of-failed-selenium-tests/
https://addons.mozilla.org/en-us/firefox/addon/screenshot-on-fail-selenium/
Take a screenshot with Selenium WebDriver
如果不合适,请说明其他要求。
答案 2 :(得分:0)
截取屏幕截图
然后您可以将其保存为数据库sql server info
中的blob