我有两个@after标签,@close浏览器和@screenshot。因此,现在当我对功能文件使用两个标签时,它首先@close浏览器执行,并且在@screenshot方法之后执行失败。有没有办法告诉我黄瓜先跑@screenshot方法?
有一个"order"参数,你可以传递给@Before
,@After
来控制执行顺序:
@Before( order = 5 )
public void foo() {}
@After( order = 500 )
public void bar() {}
钩子之前按升序运行(最低顺序号在前),而钩子之后按降序运行(最高顺序号在前)。
屏幕截图
应使用@After
注释方法之一进行。喜欢这个:
@After
public void finish(Scenario scenario) {
try {
byte[] screenshot =
helper.getWebDriver().getScreenshotAs(OutputType.BYTES);
scenario.embed(screenshot, "image/png");
} catch (WebDriverException somePlatformsDontSupportScreenshots) {
System.err.println(somePlatformsDontSupportScreenshots.getMessage());
}
finally {
helper.getWebDriver().close();
}
}