【问题标题】:Dalekjs: leave browser window openDalekjs:让浏览器窗口保持打开状态
【发布时间】:2014-07-17 12:27:29
【问题描述】:

我是使用 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

【问题讨论】:

    标签: dalekjs


    【解决方案1】:

    done 函数运行后,它会运行带有测试结果的 Promise 并完成测试运行 - 即关闭任何正在运行的浏览器。

    如果您想阻止测试并保持窗口打开,您将需要使用wait 休眠给定的时间或使用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();
      }
    };
    

    【讨论】:

    • 谢谢哈迪。我想我明白你在这里做什么。但是,当我实施时,我得到一个错误:>> ERROR: Error: connect ECONNREFUSED>> ERROR: Error: socket hang up
    • 如果您可以在小提琴中发布您的测试,也许我自己或其他人可以尝试进一步帮助您
    • 抱歉,我的错。由于我没有正确运行测试,我收到了错误。运行 dalek name-of-test -b chrome 而不是 dalek name-of-test.js -b chrome。抱歉,您的修复工作完美。谢谢哈迪!
    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多