Nightwatch 测试:将浏览器设置为固定大小
Nightwatch testing: Set browser to fixed size
有什么方法可以确保浏览器不会改变初始 window 大小。在测试过程中点击了几个导致 window 最大化的东西,但我希望它在整个过程中保持相同的大小。
您可以在每次测试前固定屏幕尺寸:
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();
}
}
在你的环境配置中一劳永逸地设置它(在 nightwatch 配置文件中的 test_settings
下):
"desiredCapabilities": {
"chromeOptions": {
"args": [
"window-size=1280,800"
]
}
}
请注意,此方法会起作用,因为我们正在设置 chrome 标志,因此实现可能会有所不同(例如,safari 没有此类标志)。
对于不支持这些选项的浏览器,最好在 globals beforeEach
钩子 中调整 window imperatively 的大小:
{
beforeEach: function (browser, done) {
browser.resizeWindow(1280, 800, done);
}
}
阅读 nightwatch settings docs 以了解如何使用全局变量。
使用上述方法,您不必在每个测试中指定它 :)
这是他们应该批准 pr 的 firefox 修复程序,它会起作用,
https://github.com/nightwatchjs/nightwatch/pull/2169
有什么方法可以确保浏览器不会改变初始 window 大小。在测试过程中点击了几个导致 window 最大化的东西,但我希望它在整个过程中保持相同的大小。
您可以在每次测试前固定屏幕尺寸:
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();
}
}
在你的环境配置中一劳永逸地设置它(在 nightwatch 配置文件中的 test_settings
下):
"desiredCapabilities": {
"chromeOptions": {
"args": [
"window-size=1280,800"
]
}
}
请注意,此方法会起作用,因为我们正在设置 chrome 标志,因此实现可能会有所不同(例如,safari 没有此类标志)。
对于不支持这些选项的浏览器,最好在 globals beforeEach
钩子 中调整 window imperatively 的大小:
{
beforeEach: function (browser, done) {
browser.resizeWindow(1280, 800, done);
}
}
阅读 nightwatch settings docs 以了解如何使用全局变量。
使用上述方法,您不必在每个测试中指定它 :)
这是他们应该批准 pr 的 firefox 修复程序,它会起作用, https://github.com/nightwatchjs/nightwatch/pull/2169