java - Java + Cucumber 失败的屏幕截图

标签 java cucumber screenshot

我发现了一种看似广泛使用的方法,可以在使用 Java + Cucumber 时捕获失败的屏幕截图,这很好又简单:

@After
public void embedScreenshot(Scenario scenario) throws Exception {
    if (scenario.isFailed()) {
        try {
            byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
            String testName = scenario.getName();
            scenario.embed(screenshot, "image/png");
            scenario.write(testName);
        } catch (WebDriverException wde) {
            System.err.println(wde.getMessage());
        } catch (ClassCastException cce) {
            cce.printStackTrace();}
        }
    }
}  

如何将图像文件写入桌面上的文件夹(例如,而不是默认的项目目录),并为其指定一个自定义名称,例如我的 Cucumber 测试场景的名称?

最佳答案

您可以从 Scenario 场景 中获取场景名称,如下所示:

scenario.getName()

然后您可以创建两个 File 对象,一个用于屏幕截图,另一个用于目标,然后使用 org.apache.commons.io.FileUtils 进行复制屏幕截图文件到目标文件夹:

FileUtils.copyFile(file, destFile);

关于java - Java + Cucumber 失败的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38839218/

相关文章:

java - 无法从外部进程读取流

cucumber - 在 cucumber 中的场景大纲之前运行登录步骤

spring - 如何用 cucumber 激活 Spring 启动配置文件

ruby-on-rails-3 - cucumber ; Selenium WebDriver - 如何使用 Google Chrome 作为测试浏览器而不是 Firefox

c++ - QPixmap::grabWindow 应用程序卡住后

java - 用 Java 截取指定小程序或程序的屏幕截图?

java - 返回所有满足条件的字符串值

java - 从 Maven 项目中的 Alfresco 中删除远程跟踪图像

java - 代码如何工作 - 应用于样式时为 "SWT.MULTI | SWT.SINGLE"

delphi - 在使用 Firemonkey 拍摄的屏幕截图中包含鼠标光标