在 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.strategy
为 unstable
。但这意味着等待页面加载现在是您的全部业务
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);
}
似乎使用 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.strategy
为 unstable
。但这意味着等待页面加载现在是您的全部业务
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);
}