Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Nightwatch testing: Set browser to fixed size

Is there any way to ensure that the browser does not change from the initial window size. There are several things that are clicked during testing that are causing the window to maximize but i would like it to stay the same size throughout.

like image 552
compsci45000 Avatar asked Jun 06 '15 19:06

compsci45000


2 Answers

set it up once and for all in your env configuration (under test_settings in the nightwatch config file):

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

note that this method will work because we're setting a chrome flag, so implementation may vary (e.g. safari does not have such flags).

for browsers that do not support these options, it's best to resize the window imperatively in the globals beforeEach hook:

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

have a read on the nightwatch settings docs to see how globals are used.

using the above methods, you won't have to specify it in each test :)

like image 133
Eliran Malka Avatar answered Oct 14 '22 15:10

Eliran Malka


You can fix the screen size before each test like that :

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();
  }
}
like image 28
Nicolas Pennec Avatar answered Oct 14 '22 16:10

Nicolas Pennec