【问题标题】:How to highlight the area while taking Screen shot?如何在截屏时突出显示该区域?
【发布时间】:2019-06-13 18:36:02
【问题描述】:

当测试用例通过或失败时,是否有任何方法可以在屏幕截图中突出显示组件。

我正在使用以下方法截屏。

  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();

【问题讨论】:

  • 您可以只截取页面特定区域的屏幕截图。您应该能够通过谷歌搜索并找到可以为您执行此操作的代码。

标签: selenium testng


【解决方案1】:

请记住,导致失败的原因有很多,例如超时、Wedbriver 异常、过时元素、未找到元素等。

我看不出如何突出显示该列表中的任何内容,所以它是有意义的。如果您要查找的元素不存在,您可以突出显示什么?或者发生超时时要突出显示什么?整页?

无论如何,如果您想突出显示特定元素,请查看此答案here

【讨论】:

    【解决方案2】:

    只是给你一些提示和想法。 屏幕截图是一个图像,其中包含您所知道的文本组件,例如某些文本的结果列表。如果您知道元素的文本值并且您知道错误来自与页面不匹配的预期结果,而不是其他底层硒异常;有一个名为 Java OCR 的 java 库 从图像中提取文本。现在在图像上找到文本,它将为您提供文本位置;使用 java 2D api,您可以在图像文件中进行一些偏移并营销文本位置的周围区域。

    希望这能有所帮助。

    艾伦·梅奥 英国伦敦

    【讨论】:

      【解决方案3】:

      正如 Eugene 所说,对于某些类型的异常,突出显示屏幕截图是不合适的(例如,如果您希望在页面上出现的元素不存在)。但是,在很多情况下,您可能希望突出显示某个元素,例如某个元素的文本不是您所期望的。

      除了在实际屏幕截图中突出显示某些内容外,还可以(使用 Javascript)突出显示页面本身的元素。然后您可以截取屏幕截图,突出显示将可见。

      可以在此处找到有关如何执行此操作的说明:https://www.qaautomation.co.in/2018/11/highlight-element-in-screenshot-store-selenium.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-12
        • 1970-01-01
        • 2012-08-21
        • 1970-01-01
        • 2014-11-22
        相关资源
        最近更新 更多