Sein ganz einfach, wenn ein Nachtschwärmer-Test ausgeführt wird, die browser
(oder client
) Parameter übergeben wird, zum Beispiel:
module.exports = {
'Demo test GitHub': function (browser) {
console.log(browser.options); // this will output the browser details
browser
.url('http://www.github.com/dwyl') // visit the url
.waitForElementVisible('body'); // wait for the body to be rendered
.assert.containsText('body', 'do what you love') // assert contains
.saveScreenshot('dwyl_github.png')
.end();
}
};
Das browser
Objekt enthält ein options
Objekt mit der folgenden Form:
{ screenshots: true,
screenshotsPath: './node_modules/nightwatch/screenshots/1.0.20/',
skip_testcases_on_fail: true,
log_screenshot_data: true,
username: 'thisguy',
accessKey: 'notimportant',
desiredCapabilities:
{ browserName: 'internet explorer',
javascriptEnabled: true,
acceptSslCerts: true,
platform: 'Windows 10',
version: '11.0',
name: 'Github' } }
Also haben wir eine kleine Hilfsfunktion geschrieben, um den Namen des Browsers in eine Zeichenkette zu formatieren, die wir in den Screenshot-Dateinamen aufnehmen könnten:
function userAgent(browser) { // see: https://git.io/vobdn
var a = browser.options.desiredCapabilities;
return (a.platform + '~' + a.browserName + '~' + a.version).replace(/ /g, '');
}
, die dann als verwendet:
module.exports = {
'Demo test GitHub': function (browser) {
console.log(browser.options); // this will output the browser details
browser
.url('http://www.github.com/dwyl') // visit the url
.waitForElementVisible('body'); // wait for the body to be rendered
.assert.containsText('body', 'do what you love') // assert contains
.saveScreenshot(userAgent(browser) + '_dwyl_github.png')
.end();
}
};
Beispiel Dateiname: Windows10~internetexplorer~11.0~dwyl_github.png
Der Grund für die Verwendung ~
("Tilde") als das Worttrenn später split
auf diese können wir so war Charakter in unserem Screenshot-Viewer. Siehe: https://github.com/dwyl/learn-nightwatch für weitere Details.