1

我是使用 Dalekjs 的新手,我正在尝试打开浏览器,运行一些测试,并且(至关重要)想让浏览器窗口保持打开状态。

有没有办法在 Dalekjs 中做到这一点?默认似乎是浏览器自动关闭。

module.exports = {
'Page title is correct': function (test) {
  test
    .open('http://google.com')
    .assert.title().is('Google', 'It has title')
    .done();
}
};

我正在使用以下命令在控制台中运行:

dalek my-test.js -b chrome
4

1 回答 1

1

一旦done函数运行,它会运行一个带有测试结果的 promise 并完成测试运行——即关闭任何正在运行的浏览器。

如果您想阻止测试并保持窗口打开,您将需要使用 await休眠给定时间或waitFor等待满足给定条件,然后再处理下一步。

我建议您执行以下操作:

module.exports = {
  'Page title is correct': function (test) {
    test
      .open('http://google.com')
      .assert.title().is('Google', 'It has title')
      .execute(function(){
        // Save any value from current browser context in global variable for later use
        var foo = window.document.getElementById(...).value;
        this.data('foo', foo);
      })
      .waitFor(function (aCheck) {
        // Access your second window from here and fetch dependency value
        var foo = test.data('foo');

        // Do something with foo...

        return window.myThing === aCheck;
      }, ['arg1', 'arg2'], 10000)
      .done();
  }
};
于 2014-07-21T11:22:42.693 回答