2017-10-22 3 views
0

browser.url()http://nightwatchjs.org/api/#url)を使用すると、WebDriverクライアントがページが完全に読み込まれるまで待機するように見えますが、前にアサーションを作成していますポイント。Nightwatchでは、 `.url()`が長すぎるアサーションをブロックする

"Shows splash screen for a few seconds": function(client) { 
    client 
    .url(client.testURL) 
    // at this point, the splash has already come and gone, so 
    // this next command times out 
    .waitForElementVisible('#splash img', 10000) 
    .waitForElementNotVisible('#splash', 10000); 
}, 

これは可能ですか?私の唯一の選択肢は、テストシナリオでスプラッシュを無効にすることだと思います。

私はFirefox v45でこれらのテストを実行しています。

答えて

1

あなたは中

https://github.com/nightwatchjs/nightwatch/issues/748

以下のように設定する必要好みがunstableするwebdriver.load.strategyあるFirefoxのプロファイル設定を設定することにより、これを行うことができます。しかし、これは、ページが読み込まれるのを待つことがすべてあなたのビジネスになったことを意味します。

var FirefoxProfile = require('firefox-profile'); 

function setProfile(browser, profile, callback) { 
    profile.encoded(function (encodedProfile) { 
     browser.options.desiredCapabilities['firefox_profile'] = encodedProfile; 
     callback(); 
    }); 
} 

function setFirefoxProfile(browser, done) { 
    var profile = new FirefoxProfile(); 
    profile.setPreference('webdriver.load.strategy', 'unstable'); 

    setProfile(browser, profile, done); 
} 


// and in my test module 
before: function (browser, done) { 
    setFirefoxProfile(browser, done); 
} 
+0

これを組み込むことで、Firefoxはまだフルページの読み込みを待っています。 Firefoxのバージョンがこの機能の前後にある可能性はありますが、Nightwatchを最新のFirefoxで設定しようと多くの時間を費やしましたが、v45に固執するつもりはありませんでした。 – diachedelic

+0

最新のfirefoxには 'geckodriver'が必要です。あなたのバージョンはgeckodriverの前にあり、最新のものはこのプロファイル設定ではありません。プロファイルの設定が実際に適用された場合、開いているFirefoxをチェックインできますか? 'about:config'に行き、設定したプロパティをフィルタリングして値を確認してください。 –

+0

Webdriver設定がたくさんありますが、' webdriver.load.strategy'は表示されません。古いバージョンのFirefoxを設定する手助けをしてくれるのはおそらく無駄です。Chromeに移行するだけのかもしれません。 – diachedelic

関連する問題