13

有什么方法可以确保浏览器不会从初始窗口大小发生变化。在测试期间单击了几件事会导致窗口最大化,但我希望它始终保持相同的大小。

4

3 回答 3

25

在您的 env 配置中一劳永逸地设置它(test_settings在 nightwatch 配置文件中):

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

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

对于不支持这些选项的浏览器,最好在全局挂钩中强制调整窗口大小:beforeEach

{
    beforeEach: function (browser, done) {
        browser.resizeWindow(1280, 800, done);
    }
}

阅读nightwatch 设置文档以了解如何使用全局变量。

使用上述方法,您不必在每个测试中指定它:)

于 2017-01-02T11:07:55.030 回答
13

您可以像这样在每次测试之前修复屏幕尺寸:

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();
  }
}
于 2015-06-08T09:05:31.010 回答
0

这是他们应该批准公关的firefox修复程序,它将起作用, https://github.com/nightwatchjs/nightwatch/pull/2169

于 2019-08-06T18:52:56.350 回答