0

我正在尝试创建一个函数来在测试结束时获取硒中的屏幕截图。我正在传递 3 个参数“测试结果”、“消息”、“真/假”,供用户决定是否打印。

但是,在执行函数调用时,它不会将打印从屏幕上移开,它会生成带有执行步骤的 HTML,但没有打印。

功能

public void escreveRelatorio(boolean status, String msg, boolean printScreen) {

        scenario.write(msg);

        if(printScreen) {
            scenario.embed(((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES), "image/png");
        }

        if(status == false) {
            Assert.fail(msg);
        }

    }

测试中间的函数调用。

generic.escreveRelatorio(false, "O número de confirmação foi gerado: " + num, true);

或者

public void validaNumeroConfirmacao() {

    String num = generic.obterTexto(lblConfirmationNumber).substring(23);

    if(!num.equals("1")){
        generic.escreveRelatorio(false, "O número de confirmação foi gerado: " + num, true);
    } else {
        generic.escreveRelatorio(true, "O número de confirmação foi gerado: " + num, true);
    }

}

我究竟做错了什么?

4

1 回答 1

1

上面例子的问题是你没有指定你的截图应该保存在哪里。

您的 getScreenshotAs() 将返回 byte[] 但您没有对它做任何事情。

File scrfile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);    
FileUtils.copyFile(scrfile, new File("/screenshot/SomeUniqueName.png"));
于 2020-03-09T12:06:48.590 回答