javascript - 如何在没有网络浏览器交互的情况下在 nightwatch.js 中等待任意时间

标签 javascript testing nightwatch.js

我正在将我的测试从 Intern.js 迁移到 Nightwatch.js,我确定这不是推荐的编写测试的方式,但我的测试异步生成浏览器 命令调用(我的测试使用一个有自己的命令队列的类)。根据正在执行的内容,Nightwatch 命令队列有时可能为空,但最终会被填充。我需要一种方法来手动通知 Nightwatch 何时完成,然后等到那时,否则浏览器会过早关闭。

我可以这样做:

finished() {
  let done = false;
  //will run at the end of my class's internal command queue
  this.command
    .then(() => {
      done = true;
    });
    
  //will cause nightwatch to wait until my command queue is done
  this.browser.perform(doneFn => {
    const check = () => {
      if (done) {
        return doneFn();
      }
      setTimeout(check, 10);
    }
    check();
  });
}

但在那种情况下 perform() 将在等待 10 秒后超时,而且我似乎无法配置它。否则我可以运行一系列约 9 秒的 perform() 调用,但这听起来太老套了。我可以重写以依赖于守夜人命令队列,但重写所有内容也需要更多工作。

最佳答案

最后,改用 nightwatch 的命令队列更容易。任何在 Intern.js 中只是 .then() 的东西都变成了各种形式的 .perform()

关于javascript - 如何在没有网络浏览器交互的情况下在 nightwatch.js 中等待任意时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58310273/

相关文章:

javascript - 当开发者控制台在 chrome 中打开时,为什么 onmouseover 停止工作?

javascript - 如何在弹出页面和后台页面之间进行通信并存储我已经获得的信息?

mocking - Nightwatch 模拟 HTTP 请求

xpath - 如何让 Nightwatch 在页面对象文件中默认使用 xpath

javascript - 使用 jquery 将背景颜色添加到选项

javascript - 如何检测 json 不是 json (它是 html)

grails - "Could not find ApplicationContext, configure Grails correctly first"

应用程序购买中的 IO - 沙盒的报告/交易日志

javascript - 如何将空数据类型和数字数据类型集成到我的架构中?

javascript - 是否可以通过 nightwatch.js 设置元素的 Style 属性值?如果是的话怎么办?