cucumber-js中是否有超时事件

Is there a timeout event in cucumber-js

我正在使用 cucumber-js 运行 测试 selenium-webdriver。 我想在任何步骤超时时添加浏览器的屏幕截图。 我在所有步骤中使用全局超时:

this.setDefaultTimeout(3 * 60 * 1000);

在我的挂钩文件中。

如何注册全局超时事件(如果存在)?

Selenium Webdriver js提供了截屏功能,你只需要在After中使用它,类似于TestNG

中的@AfterClass标签

After场景会在Feature中的每个场景之后执行,并检查场景的结果,如果失败会截图。 失败的原因可以是任何东西,比如错误,或者 DEFAULT_TIMEOUT

您需要将此添加到 world.js

this.After(function (scenario) {

    if (scenario.isFailed()) {

        // take a screenshot
        // driver.takeScreenshot() is defined in webDriver.js
        return driver.takeScreenshot()
           .then(function (screenShot) {
               scenario.attach(new Buffer(screenShot, 'base64'), 'image/png'); 
               return driver.close()
                 .then(function () {
                    return driver.quit();
                 });
            });
    }
    else {
        return driver.close()
          .then(function () {
              return driver.quit();
          });
    }
});