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 を実行し、テストの実行を完了します。つまり、実行中のブラウザーを閉じます。

テストをブロックしてウィンドウを開いたままにする場合は、を使用し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();
  }
};
于 2014-07-21T11:22:42.693 に答える