当测试用例通过或未通过特定测试时,是否有任何方法可以突出显示屏幕截图中的组件。
我使用以下方法拍摄屏幕截图。
private void writeScreenshotToFile(WebDriver driver, File screenshot) {
try {
FileOutputStream screenshotStream = new FileOutputStream(screenshot);
screenshotStream.write(((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES));
screenshotStream.close();
} catch (IOException unableToWriteScreenshot) {
System.err.println("Unable to write " + screenshot.getAbsolutePath());
unableToWriteScreenshot.printStackTrace();
答案 0 :(得分:0)
请记住,导致失败的原因有很多,例如超时,Wedbriver异常,陈旧元素,未找到元素等。
我无法看到该列表中的任何内容可以突出显示,因此有意义。如果您所寻找的元素不存在,您能突出显示什么?或者在发生超时时要突出显示什么?整个页面?
无论如何,如果您想突出显示某个特定元素,请查看此答案here。
答案 1 :(得分:0)
只是给你一些提示和想法。 屏幕截图是一个图像,其中包含您知道的组件,如文本,如某些文本的结果列表。如果您知道元素的文本值,并且您知道错误来自与页面不匹配的预期结果而不是其他基础selenium异常;有一个名为Java OCR的java库 从图像中提取文本。现在在图像上找到文本,它将为您提供文本位置;使用java 2D api,你可以在图像文件中设置并销售文本位置的周围区域。
希望这可以提供帮助。
Alan Mehio 英国伦敦
答案 2 :(得分:-1)
正如Eugene所说,对于某些类型的“异常”,突出显示屏幕截图是不合适的(例如,如果您希望页面上的元素不存在)。但是,在很多情况下,您可能希望突出显示元素,例如,如果元素的文本不是您期望的那样。
除了突出显示实际屏幕截图中的内容外,还可以(使用Javascript)突出显示页面本身上的元素。然后,您可以截取屏幕截图,突出显示即可。
有关如何执行此操作的说明,可以在这里找到:https://www.qaautomation.co.in/2018/11/highlight-element-in-screenshot-store-selenium.html。