2015-06-06 12 views
7

Gibt es eine Möglichkeit, sicherzustellen, dass der Browser nicht von der ursprünglichen Fenstergröße ändert. Es gibt mehrere Dinge, die beim Testen angeklickt werden, die das Fenster zum Maximieren veranlassen, aber ich möchte, dass es die gleiche Größe beibehält.Nachtwachtest: Browser auf feste Größe setzen

Antwort

10

Sie können die Bildschirmgröße fixieren vor jedem Test wie folgt aus:

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

Set es einmal und für alle in der env-Konfiguration (unter test_settings in der Nachtwache config-Datei):

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

Beachten Sie, dass diese Methode funktioniert, weil wir ein Chrom-Flag setzen, so dass die Implementierung variieren kann (zB Safari hat keine solchen Flags).

für Browser, die diese Optionen nicht unterstützen, ist es am besten das Fenster imperatively in den Globals, um die Größe beforeEach Haken:

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

eine Lese haben auf dem nightwatch settings docs zu sehen, wie Globals verwendet werden.

die oben genannten Methoden verwenden, können Sie müssen nicht in jedem Test angeben :)

+1

meinten Sie 'browser.resizeWindow (1280, 800, getan)'? du hast Recht, als ich die Antwort aktualisiert .. –

+1

Ich tat - whoops! Gut von dir, es zu aktualisieren. Prost. Ursprünglicher Kommentar gelöscht, um die Leute nicht mit dem falschen Vorschlag zu verwirren. Siehe @Eliran Maklas Kommentar – GrayedFox