夜巡测试:将浏览器设置为固定大小



是否有办法确保浏览器不会改变初始窗口的大小?在测试过程中,点击一些东西会导致窗口最大化,但我希望它始终保持相同的大小。

在你的env配置(在nightwatch配置文件的test_settings下)中一次性设置它:

"desiredCapabilities": {
    "chromeOptions": {
        "args": [
            "window-size=1280,800"
        ]
    }
}

请注意,这个方法将工作,因为我们正在设置一个chrome标志,所以实现可能会有所不同(例如safari没有这样的标志)。

对于不支持这些选项的浏览器,最好在globals beforeEach钩子: 中强制调整窗口大小。
{
    beforeEach: function (browser, done) {
        browser.resizeWindow(1280, 800, done);
    }
}

阅读一下nightwatch Settings文档,看看全局变量是如何使用的。

使用上面的方法,不需要在每个测试中指定:)

您可以在每次测试之前像这样固定屏幕大小:

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

这是firefox的修复他们应该批准pr,它会工作,https://github.com/nightwatchjs/nightwatch/pull/2169

最新更新