【问题标题】:Adding screenshot after every step in cucumber report using java [duplicate]使用java在黄瓜报告的每一步后添加屏幕截图[重复]
【发布时间】:2019-03-26 13:53:51
【问题描述】:

我正在尝试在黄瓜报告的每一步之后添加屏幕截图,截至目前,在钩子工作正常之后,但这将截取最后一步失败的屏幕截图,在 java selenium + cucumber 中有没有一种方法可以让我获取小黄瓜场景每一步后的截图?

【问题讨论】:

    标签: java selenium cucumber


    【解决方案1】:

    基本上,您需要有一个帮助方法来在每个步骤之后进行屏幕截图,如下所示 -

    class Utility{
    
    public static Scenario message;    
    
    public static void takeScreenShotAfterEveryStep() {
            byte[] screenshot = ((TakesScreenshot)DriverManager.getDriver()).getScreenshotAs(OutputType.BYTES);
            message.embed(screenshot, "image/png");
        }
    }
    

    调用上述方法,完全取决于你是如何实现框架的,其中一种方法可能是从 Cucumber hook 的 @Before method() 传递场景引用

    @Before
        public void setUpScenario(Scenario scenario){
        Utility.message = scenario; 
    }
    

    然后在每一步之后调用 takeScreenShotAfterEveryStep()

    【讨论】:

    • 实际上这行得通,非常感谢:)
    【解决方案2】:

    我认为after step 钩子可以回答你的问题。

    【讨论】:

    • 嗨 Zdadco,感谢您的回复,我尝试了这个 @AfterStep,但我找不到这个注释,我正在使用 info.cukes cucumber-java1.2.5
    • info.cukes 是旧版本。使用io.cucumber:cucmber-javaio.cucumber:cucmber-java8 它们有很多有用的功能并且很容易理解doc
    • 这其实很好,但是现有的框架需要做很多改变:(
    • 我认为使用 info.cukes lib,您只能使用带有 Scenario 方法参数的 @After 来处理场景完成或失败。如果你还是真的想截屏,那么你需要创建一个方法并将其添加到每个步骤的末尾。我认为这是您问题的唯一答案。
    • 明白了,谢谢帮助!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2016-07-13
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多