在 Nightwatch 中,`.url()` 阻止断言的时间太长

In Nightwatch, `.url()` blocks assertions for too long

似乎使用 browser.url() (http://nightwatchjs.org/api/#url) 进行导航会导致 WebDriver 客户端等待页面完全加载 - 但是我想在此之前做出断言。

"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 上 运行 这些测试。

您可以通过如下所示设置 Firefox 配置文件首选项来完成此操作

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

您需要设置的首选项是 webdriver.load.strategyunstable。但这意味着等待页面加载现在是您的全部业务

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);
}