有没有办法确保浏览器不会从初始窗口大小更改。在测试期间点击了几个导致窗口最大化的东西,但我希望它在整个过程中保持相同的大小。
答案 0 :(得分:20)
在您的env配置中一次性设置(在nightwatch配置文件中的test_settings
下):
"desiredCapabilities": {
"chromeOptions": {
"args": [
"window-size=1280,800"
]
}
}
请注意,此方法可行,因为我们正在设置chrome标记,因此实现可能会有所不同(例如,safari没有此类标记)。
对于不支持这些选项的浏览器,最好在全局beforeEach
挂钩中调整窗口imperatively的大小:
{
beforeEach: function (browser, done) {
browser.resizeWindow(1280, 800, done);
}
}
读取nightwatch settings docs以了解全局变量的使用方式。
使用上述方法,您不必在每个测试中指定:)
答案 1 :(得分:12)
您可以在每次测试之前修复屏幕大小:
module.exports = {
tags: ['myTest'],
before : function (browser) {
browser.resizeWindow(800, 600);
},
'Test #1' : function (browser) {
return browser
.url('http://localhost/test1')
.waitForElementVisible('body', 2000);
},
'Test #2' : function (browser) {
return browser
.url('http://localhost/test2')
.waitForElementVisible('body', 2000);
},
after : function (browser) {
browser.end();
}
}
答案 2 :(得分:0)
这是他们应该批准pr的firefox修复程序,它将起作用, https://github.com/nightwatchjs/nightwatch/pull/2169