diff --git a/examples/tests/bstackdemo/auth.js b/examples/tests/bstackdemo/auth.js new file mode 100644 index 0000000000..e19756920a --- /dev/null +++ b/examples/tests/bstackdemo/auth.js @@ -0,0 +1,23 @@ +describe('Authentication Tests', function () { + beforeEach((browser) => browser.navigateTo('https://www.bstackdemo.com')); + + it('Login test', function () { + browser + .click('#signin') + .setValue('#username input', ['demouser', browser.Keys.ENTER]) + .setValue('#password input', ['testingisfun99', browser.Keys.ENTER]) + .click('#login-btn') + .assert.textEquals('.username', 'demouser', 'demouser had logged in successfuly.'); + }); + + it('Locked account test', function () { + browser + .click('#signin') + .setValue('#username input', ['locked_user', browser.Keys.ENTER]) + .setValue('#password input', ['testingisfun99', browser.Keys.ENTER]) + .click('#login-btn') + .assert.textContains('.api-error', 'Your account has been locked.'); + }); + + afterEach((browser) => browser.end()); +}); diff --git a/examples/tests/bstackdemo/checkout.js b/examples/tests/bstackdemo/checkout.js new file mode 100644 index 0000000000..33be280840 --- /dev/null +++ b/examples/tests/bstackdemo/checkout.js @@ -0,0 +1,33 @@ +describe('Checkout Test', function () { + before((browser) => browser.navigateTo('https://www.bstackdemo.com/')); + + it('checkout products on bstackdemo.com', function (browser) { + browser + .waitForElementVisible('body') + .assert.titleContains('StackDemo') + // Filter Google from the avaialble filters + .click('input[value=\'Google\'] + span') + .assert.selected('input[value=\'Google\']') + // Add different phones to cart + .click('[id="17"] .shelf-item__buy-btn') + .click('[id="18"] .shelf-item__buy-btn') + .assert.elementsCount('.float-cart__shelf-container .shelf-item', 2) + // Click checkout + .click('.buy-btn') + // Loging with given credentials + .setValue('#username input', ['demouser', browser.Keys.ENTER]) + .setValue('#password input', ['testingisfun99', browser.Keys.ENTER]) + .click('#login-btn') + // Fill shipping details + .setValue('#firstNameInput', 'John') + .setValue('#lastNameInput', 'Doe') + .setValue('#addressLine1Input', 'localhost') + .setValue('#provinceInput', 'local') + .setValue('#postCodeInput', '127001') + .click('#checkout-shipping-continue') + // Check order successfully placed + .assert.textEquals('#confirmation-message', 'Your Order has been successfully placed.'); + }); + + after((browser) => browser.end()); +}); diff --git a/examples/tests/chromeCDP_example.js b/examples/tests/chromeCDP_example.js index a62abf633b..ea08a33063 100644 --- a/examples/tests/chromeCDP_example.js +++ b/examples/tests/chromeCDP_example.js @@ -1,5 +1,7 @@ describe('Chrome DevTools Example', function() { + this.disabled = this.argv.env !== 'chrome'; + it ('using CDP DOM Snapshot', async function(browser) { await browser.navigateTo('https://nightwatchjs.org'); diff --git a/examples/tests/google.js b/examples/tests/google.js index fbfed00cef..1a665c13f3 100644 --- a/examples/tests/google.js +++ b/examples/tests/google.js @@ -27,9 +27,16 @@ describe('sample google search', function() { .pause(1000); } + let locator; + if (browser.isMobile()) { + locator = 'form[action="/search"] input[type=search]'; + } else { + locator = 'form[action="/search"] input[type=text]'; + } + await browser - .waitForElementVisible('form[action="/search"] input[type=text]') - .sendKeys('form[action="/search"] input[type=text]', ['Nightwatch.js', browser.Keys.ENTER]) + .waitForElementVisible(locator) + .sendKeys(locator, ['Nightwatch.js', browser.Keys.ENTER]) .assert.textContains('#rso>:first-child', 'Nightwatch.js') .end(); }); diff --git a/lib/api/_loaders/element-api.js b/lib/api/_loaders/element-api.js index 0ed9e1da73..6b4314448f 100644 --- a/lib/api/_loaders/element-api.js +++ b/lib/api/_loaders/element-api.js @@ -20,6 +20,12 @@ class ScopedElementAPILoader { ]; } + static isScopedElementCommand(commandName) { + return ScopedElementAPILoader.availableElementCommands.some( + commands => commands.includes(commandName) + ); + } + constructor(nightwatchInstance) { this.nightwatchInstance = nightwatchInstance; } diff --git a/lib/api/_loaders/element-global.js b/lib/api/_loaders/element-global.js index 2669ccc0bc..419be0acf3 100644 --- a/lib/api/_loaders/element-global.js +++ b/lib/api/_loaders/element-global.js @@ -235,7 +235,7 @@ class ElementGlobal { const isElement = await this.setElement(stackTrace); if (!isElement) { return null; - }3; + } if (commandName === 'findElement' && args.length === 0) { return this.element; diff --git a/lib/api/assertions/hasAttribute.js b/lib/api/assertions/hasAttribute.js index 802c9e3477..54b3ac134c 100644 --- a/lib/api/assertions/hasAttribute.js +++ b/lib/api/assertions/hasAttribute.js @@ -19,7 +19,7 @@ * @api assertions */ -const {setElementSelectorProps, containsMultiple} = require('../../utils'); +const {setElementSelectorProps, isString} = require('../../utils'); exports.assertion = function(definition, expectedAttribute, msg) { this.options = { @@ -32,35 +32,31 @@ exports.assertion = function(definition, expectedAttribute, msg) { this.formatMessage = function() { + if (!isString(expectedAttribute)) { + throw new Error('Expected attribute must be a string'); + } + let message = msg || `Testing if element %s ${this.negate ? 'doesn\'t have attribute %s' : 'has attribute %s'}`; return { message, - args: [this.elementSelector, `'${Array.isArray(expectedAttribute) ? expectedAttribute.join(' ') : expectedAttribute}'`] + args: [this.elementSelector, `'${expectedAttribute}'`] }; }; this.evaluate = function() { - if (!this.attributeList) { - return false; - } - - return containsMultiple(this.attributeList, expectedAttribute, ' '); - }; + const {result} = this; - this.value = function(result) { if (!result || !result.value) { - return ''; + return false; } - - this.attributeList = result.value.map(attribute => attribute.name); - - return this.attributeList; + + return true; }; this.command = function(callback) { this.api.getAttribute(setElementSelectorProps(definition, { suppressNotFoundErrors: true - }), 'attributes', callback); + }), expectedAttribute, callback); }; }; diff --git a/lib/api/protocol/alerts/accept.js b/lib/api/client-commands/alerts/accept.js similarity index 80% rename from lib/api/protocol/alerts/accept.js rename to lib/api/client-commands/alerts/accept.js index b9b55db56e..e7f91ab189 100644 --- a/lib/api/protocol/alerts/accept.js +++ b/lib/api/client-commands/alerts/accept.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Accepts the currently displayed alert dialog. Usually, this is equivalent to clicking on the 'OK' button in the dialog. @@ -27,12 +27,14 @@ const ProtocolAction = require('../_base-action.js'); * @link /#accept-alert * @api protocol.userprompts */ -module.exports = class Session extends ProtocolAction { +class AcceptAlert extends ClientCommand { static get isTraceable() { return true; } - command(callback) { - return this.transportActions.acceptAlert(callback); + performAction(callback) { + this.transportActions.acceptAlert(callback); } -}; +} + +module.exports = AcceptAlert; diff --git a/lib/api/protocol/alerts/dismiss.js b/lib/api/client-commands/alerts/dismiss.js similarity index 81% rename from lib/api/protocol/alerts/dismiss.js rename to lib/api/client-commands/alerts/dismiss.js index 49f527091d..f7eac52dd8 100644 --- a/lib/api/protocol/alerts/dismiss.js +++ b/lib/api/client-commands/alerts/dismiss.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Dismisses the currently displayed alert dialog. @@ -29,12 +29,14 @@ const ProtocolAction = require('../_base-action.js'); * @link /#dismiss-alert * @api protocol.userprompts */ -module.exports = class Session extends ProtocolAction { +class DismissAlert extends ClientCommand { static get isTraceable() { return true; } - command(callback) { - return this.transportActions.dismissAlert(callback); + performAction(callback) { + this.transportActions.dismissAlert(callback); } -}; +} + +module.exports = DismissAlert; diff --git a/lib/api/protocol/alerts/getText.js b/lib/api/client-commands/alerts/getText.js similarity index 80% rename from lib/api/protocol/alerts/getText.js rename to lib/api/client-commands/alerts/getText.js index fce1105016..a9c0e1e824 100644 --- a/lib/api/protocol/alerts/getText.js +++ b/lib/api/client-commands/alerts/getText.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Get the text of the currently displayed JavaScript alert(), confirm(), or prompt() dialog. @@ -28,8 +28,10 @@ const ProtocolAction = require('../_base-action.js'); * @link /#get-alert-text * @api protocol.userprompts */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.getAlertText(callback); +class GetAlertText extends ClientCommand { + performAction(callback) { + this.transportActions.getAlertText(callback); } -}; +} + +module.exports = GetAlertText; diff --git a/lib/api/protocol/alerts/setText.js b/lib/api/client-commands/alerts/setText.js similarity index 66% rename from lib/api/protocol/alerts/setText.js rename to lib/api/client-commands/alerts/setText.js index 1e460500f1..5b2e06b792 100644 --- a/lib/api/protocol/alerts/setText.js +++ b/lib/api/client-commands/alerts/setText.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Send keystrokes to a JavaScript prompt() dialog. @@ -27,12 +27,26 @@ const ProtocolAction = require('../_base-action.js'); * @link /#send-alert-text * @api protocol.userprompts */ -module.exports = class Session extends ProtocolAction { +class SetAlertText extends ClientCommand { static get isTraceable() { return true; } + performAction(callback) { + const {alertText} = this; + + this.transportActions.setAlertText(alertText, callback); + } + command(value, callback) { - return this.transportActions.setAlertText(value, callback); + if (typeof value !== 'string') { + throw new Error('First argument passed to .alerts.setText() must be a string.'); + } + + this.alertText = value; + + return super.command(callback); } -}; +} + +module.exports = SetAlertText; diff --git a/lib/api/client-commands/captureBrowserConsoleLogs.js b/lib/api/client-commands/captureBrowserConsoleLogs.js index bdb0714850..df9344b999 100644 --- a/lib/api/client-commands/captureBrowserConsoleLogs.js +++ b/lib/api/client-commands/captureBrowserConsoleLogs.js @@ -44,12 +44,7 @@ class StartCapturingLogs extends ClientCommand { return callback(error); } - this.transportActions - .startLogsCapture(userCallback, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.startLogsCapture(userCallback, callback); } command(userCallback, callback) { diff --git a/lib/api/client-commands/captureBrowserExceptions.js b/lib/api/client-commands/captureBrowserExceptions.js index 54e54233ba..f7f6a2c556 100644 --- a/lib/api/client-commands/captureBrowserExceptions.js +++ b/lib/api/client-commands/captureBrowserExceptions.js @@ -48,12 +48,7 @@ class CatchJsExceptions extends ClientCommand { return callback(error); } - this.transportActions - .catchJsExceptions(userCallback, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.catchJsExceptions(userCallback, callback); } command(userCallback, callback) { diff --git a/lib/api/client-commands/captureNetworkRequests.js b/lib/api/client-commands/captureNetworkRequests.js index a6be70446f..d71794cdb2 100644 --- a/lib/api/client-commands/captureNetworkRequests.js +++ b/lib/api/client-commands/captureNetworkRequests.js @@ -45,12 +45,7 @@ class CaptureNetworkCalls extends ClientCommand { return callback(error); } - this.transportActions - .interceptNetworkCalls(userCallback, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.interceptNetworkCalls(userCallback, callback); } command(userCallback, callback) { diff --git a/lib/api/client-commands/cookies/delete.js b/lib/api/client-commands/cookies/delete.js index 43c02fe1ea..3cd5a8e670 100644 --- a/lib/api/client-commands/cookies/delete.js +++ b/lib/api/client-commands/cookies/delete.js @@ -1,5 +1,4 @@ const ClientCommand = require('../_base-command.js'); -const {Logger} = require('../../../utils'); /** * Delete the cookie with the given name. This command is a no-op if there is no such cookie visible to the current page. @@ -36,12 +35,7 @@ class DeleteCookie extends ClientCommand { performAction(callback) { const {cookieName} = this; - this.transportActions - .deleteCookie(cookieName, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.deleteCookie(cookieName, callback); } command(cookieName, callback) { diff --git a/lib/api/client-commands/cookies/deleteAll.js b/lib/api/client-commands/cookies/deleteAll.js index 0a953b97f6..f4dfcf5e27 100644 --- a/lib/api/client-commands/cookies/deleteAll.js +++ b/lib/api/client-commands/cookies/deleteAll.js @@ -1,5 +1,4 @@ const ClientCommand = require('../_base-command.js'); -const {Logger} = require('../../../utils'); /** * Delete all cookies visible to the current page. @@ -33,12 +32,7 @@ class DeleteCookies extends ClientCommand { } performAction(callback) { - this.transportActions - .deleteAllCookies(callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.deleteAllCookies(callback); } } diff --git a/lib/api/client-commands/cookies/get.js b/lib/api/client-commands/cookies/get.js index 81a77ac135..e89db66c81 100644 --- a/lib/api/client-commands/cookies/get.js +++ b/lib/api/client-commands/cookies/get.js @@ -1,5 +1,4 @@ const ClientCommand = require('../_base-command.js'); -const {Logger} = require('../../../utils'); /** * Retrieve a single cookie visible to the current page. @@ -39,12 +38,7 @@ class GetCookie extends ClientCommand { performAction(callback) { const {cookieName} = this; - this.transportActions - .getCookie(cookieName, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.getCookie(cookieName, callback); } command(name, callback) { diff --git a/lib/api/client-commands/cookies/getAll.js b/lib/api/client-commands/cookies/getAll.js index e8eb0ab85f..d975e56e77 100644 --- a/lib/api/client-commands/cookies/getAll.js +++ b/lib/api/client-commands/cookies/getAll.js @@ -1,5 +1,4 @@ const ClientCommand = require('../_base-command.js'); -const {Logger} = require('../../../utils'); /** * Retrieve all cookies visible to the current page. @@ -36,12 +35,7 @@ const {Logger} = require('../../../utils'); class GetCookies extends ClientCommand { performAction(callback) { - this.transportActions - .getCookies(callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.getCookies(callback); } } diff --git a/lib/api/client-commands/cookies/set.js b/lib/api/client-commands/cookies/set.js index 3cd8ab1de1..37d9d315f8 100644 --- a/lib/api/client-commands/cookies/set.js +++ b/lib/api/client-commands/cookies/set.js @@ -1,6 +1,5 @@ const ClientCommand = require('../_base-command.js'); const Utils = require('../../../utils/index.js'); -const {Logger} = require('../../../utils'); /** * Set a cookie, specified as a cookie JSON object, with properties as defined [here](https://www.w3.org/TR/webdriver/#dfn-table-for-cookie-conversion). @@ -48,12 +47,7 @@ class SetCookie extends ClientCommand { performAction(callback) { const {cookie} = this; - this.transportActions - .addCookie(cookie, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.addCookie(cookie, callback); } command(cookie, callback) { diff --git a/lib/api/protocol/document/injectScript.js b/lib/api/client-commands/document/injectScript.js similarity index 74% rename from lib/api/protocol/document/injectScript.js rename to lib/api/client-commands/document/injectScript.js index 91e2d22925..9954cf28ed 100644 --- a/lib/api/protocol/document/injectScript.js +++ b/lib/api/client-commands/document/injectScript.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Utility command to load an external script into the page specified by url. @@ -25,11 +25,17 @@ const ProtocolAction = require('../_base-action.js'); * @returns {HTMLScriptElement} The newly created script tag. * @api protocol.document */ -module.exports = class InjectScript extends ProtocolAction { +class InjectScript extends ClientCommand { static get isTraceable() { return true; } + performAction(callback) { + const {scriptFn, scriptArgs} = this; + + this.transportActions.executeScript(scriptFn, scriptArgs, callback); + } + command(scriptUrl, id, callback) { const args = [scriptUrl]; @@ -42,6 +48,12 @@ module.exports = class InjectScript extends ProtocolAction { // eslint-disable-next-line const script = function(u,i) {return (function(d){var e=d.createElement('script');var m=d.getElementsByTagName('head')[0];e.src=u;if(i){e.id=i;}m.appendChild(e);return e;})(document);}; - return this.executeScriptHandler('executeScript', script, args, callback); + this.scriptFn = 'var passedArgs = Array.prototype.slice.call(arguments,0); return (' + + script.toString() + ').apply(window, passedArgs);'; + this.scriptArgs = args; + + return super.command(callback); } }; + +module.exports = InjectScript; diff --git a/lib/api/protocol/document/source.js b/lib/api/client-commands/document/source.js similarity index 80% rename from lib/api/protocol/document/source.js rename to lib/api/client-commands/document/source.js index 845b99340f..9aea0b145b 100644 --- a/lib/api/protocol/document/source.js +++ b/lib/api/client-commands/document/source.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Get the string serialized source of the current page. @@ -24,12 +24,14 @@ const ProtocolAction = require('../_base-action.js'); * @link /#get-page-source * @api protocol.document */ -module.exports = class Source extends ProtocolAction { +class Source extends ClientCommand { static get AliasName() { return 'pageSource'; } - command(callback) { - return this.transportActions.getPageSource(callback); + performAction(callback) { + this.transportActions.getPageSource(callback); } -}; +} + +module.exports = Source; diff --git a/lib/api/client-commands/enablePerformanceMetrics.js b/lib/api/client-commands/enablePerformanceMetrics.js index 61169d47bb..1494188522 100644 --- a/lib/api/client-commands/enablePerformanceMetrics.js +++ b/lib/api/client-commands/enablePerformanceMetrics.js @@ -41,12 +41,7 @@ class EnablePerformanceMetrics extends ClientCommand { const {enable = true} = this; - this.transportActions - .enablePerformanceMetrics(enable, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.enablePerformanceMetrics(enable, callback); } command(enable, callback) { diff --git a/lib/api/client-commands/getPerformanceMetrics.js b/lib/api/client-commands/getPerformanceMetrics.js index 70d8f750d8..be396c9684 100644 --- a/lib/api/client-commands/getPerformanceMetrics.js +++ b/lib/api/client-commands/getPerformanceMetrics.js @@ -39,12 +39,7 @@ class GetPerformanceMetrics extends ClientCommand { return callback(error); } - this.transportActions - .getPerformanceMetrics(callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.getPerformanceMetrics(callback); } command(callback) { diff --git a/lib/api/client-commands/mockNetworkResponse.js b/lib/api/client-commands/mockNetworkResponse.js index 8c31a9bee8..e564b46a7e 100644 --- a/lib/api/client-commands/mockNetworkResponse.js +++ b/lib/api/client-commands/mockNetworkResponse.js @@ -50,12 +50,7 @@ class MockNetworkResponse extends ClientCommand { urlToIntercept = `${launchUrl}${slashDel}${urlToIntercept}`; } - this.transportActions - .mockNetworkResponse(urlToIntercept, response, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.mockNetworkResponse(urlToIntercept, response, callback); } command(urlToIntercept, response, callback) { diff --git a/lib/api/client-commands/setDeviceDimensions.js b/lib/api/client-commands/setDeviceDimensions.js index d4666880d6..e5f16c1583 100644 --- a/lib/api/client-commands/setDeviceDimensions.js +++ b/lib/api/client-commands/setDeviceDimensions.js @@ -49,12 +49,7 @@ class SetDeviceDimensions extends ClientCommand { const {width = 0, height = 0, deviceScaleFactor = 0, mobile = false} = this.metrics; const metrics = {width, height, deviceScaleFactor, mobile}; - this.transportActions - .setDeviceMetrics(metrics, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.setDeviceMetrics(metrics, callback); } command(metrics, callback) { diff --git a/lib/api/client-commands/setGeolocation.js b/lib/api/client-commands/setGeolocation.js index 4b7dfab93c..a128ee09f9 100644 --- a/lib/api/client-commands/setGeolocation.js +++ b/lib/api/client-commands/setGeolocation.js @@ -51,24 +51,14 @@ class SetGeolocation extends ClientCommand { // Set accuracy as 100 if not provided. if (accuracy === undefined) {coordinates.accuracy = 100} - this.transportActions - .setGeolocation(coordinates, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.setGeolocation(coordinates, callback); return; } if (latitude === undefined && longitude === undefined) { // Clear geolocation override. - this.transportActions - .clearGeolocation(callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.clearGeolocation(callback); return; } diff --git a/lib/api/client-commands/setNetworkConditions.js b/lib/api/client-commands/setNetworkConditions.js index 860951228d..6a932c70c7 100644 --- a/lib/api/client-commands/setNetworkConditions.js +++ b/lib/api/client-commands/setNetworkConditions.js @@ -24,7 +24,6 @@ const {Logger} = require('../../utils'); */ class SetNetworkConditions extends ClientCommand { performAction(callback) { - if (!this.api.isChrome() && !this.api.isEdge()) { const error = new Error('SetNetworkConditions is not supported while using this driver'); Logger.error(error); @@ -34,14 +33,7 @@ class SetNetworkConditions extends ClientCommand { const {spec} = this; - this.transportActions - .setNetworkConditions(spec, callback) - .then((result) => { - callback(result); - }) - .catch((err) => { - return err; - }); + this.transportActions.setNetworkConditions(spec, callback); } command(spec, callback) { diff --git a/lib/api/client-commands/takeHeapSnapshot.js b/lib/api/client-commands/takeHeapSnapshot.js index 0f4c2f4d1a..a5e6348d2a 100644 --- a/lib/api/client-commands/takeHeapSnapshot.js +++ b/lib/api/client-commands/takeHeapSnapshot.js @@ -39,12 +39,7 @@ class TakeHeapSnapshot extends ClientCommand { const {heapSnapshotLocation} = this; - this.transportActions - .takeHeapSnapshot(heapSnapshotLocation, callback) - .catch(err => { - Logger.error(err); - callback(err); - }); + this.transportActions.takeHeapSnapshot(heapSnapshotLocation, callback); } command(heapSnapshotLocation, callback) { diff --git a/lib/api/protocol/window/close.js b/lib/api/client-commands/window/close.js similarity index 81% rename from lib/api/protocol/window/close.js rename to lib/api/client-commands/window/close.js index d07ebc1a8a..d443b840a9 100644 --- a/lib/api/protocol/window/close.js +++ b/lib/api/client-commands/window/close.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Close the current window or tab. This can be useful when you're working with multiple windows/tabs open (e.g. an OAuth login). @@ -26,8 +26,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.open * @api protocol.window */ -module.exports = class Action extends ProtocolAction { - command(callback) { - return this.transportActions.closeWindow(callback); +class CloseWindow extends ClientCommand { + performAction(callback) { + this.transportActions.closeWindow(callback); } -}; +} + +module.exports = CloseWindow; diff --git a/lib/api/protocol/window/fullscreen.js b/lib/api/client-commands/window/fullscreen.js similarity index 76% rename from lib/api/protocol/window/fullscreen.js rename to lib/api/client-commands/window/fullscreen.js index da5e7d0734..c4b828cc8d 100644 --- a/lib/api/protocol/window/fullscreen.js +++ b/lib/api/client-commands/window/fullscreen.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Set the current window state to fullscreen, similar to pressing F11 in most browsers. @@ -24,8 +24,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.minimize * @api protocol.window */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.fullscreenWindow(callback); +class FullscreenWindow extends ClientCommand { + performAction(callback) { + this.transportActions.fullscreenWindow(callback); } -}; +} + +module.exports = FullscreenWindow; diff --git a/lib/api/protocol/window/getAllHandles.js b/lib/api/client-commands/window/getAllHandles.js similarity index 79% rename from lib/api/protocol/window/getAllHandles.js rename to lib/api/client-commands/window/getAllHandles.js index abbfc7e43d..b3f0e77fc2 100644 --- a/lib/api/protocol/window/getAllHandles.js +++ b/lib/api/client-commands/window/getAllHandles.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Retrieve the list of all window handles available to the session. @@ -26,8 +26,10 @@ const ProtocolAction = require('../_base-action.js'); * @link /#get-window-handles * @api protocol.window */ -module.exports = class Action extends ProtocolAction { - command(callback) { - return this.transportActions.getAllWindowHandles(callback); +class GetAllWindowHandles extends ClientCommand { + performAction(callback) { + this.transportActions.getAllWindowHandles(callback); } -}; +} + +module.exports = GetAllWindowHandles; diff --git a/lib/api/protocol/window/getHandle.js b/lib/api/client-commands/window/getHandle.js similarity index 82% rename from lib/api/protocol/window/getHandle.js rename to lib/api/client-commands/window/getHandle.js index 27e9b60798..57d763a3b0 100644 --- a/lib/api/protocol/window/getHandle.js +++ b/lib/api/client-commands/window/getHandle.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Retrieve the current window handle. @@ -28,8 +28,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.switchTo * @api protocol.window */ -module.exports = class Action extends ProtocolAction { - command(callback) { - return this.transportActions.getWindowHandle(callback); +class GetWindowHandle extends ClientCommand { + performAction(callback) { + this.transportActions.getWindowHandle(callback); } -}; +} + +module.exports = GetWindowHandle; diff --git a/lib/api/protocol/window/getPosition.js b/lib/api/client-commands/window/getPosition.js similarity index 79% rename from lib/api/protocol/window/getPosition.js rename to lib/api/client-commands/window/getPosition.js index 75aa65eec8..f8cc82d92d 100644 --- a/lib/api/protocol/window/getPosition.js +++ b/lib/api/client-commands/window/getPosition.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Get the coordinates of the top left corner of the current window. @@ -25,8 +25,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.getRect * @api protocol.window */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.getWindowPosition(callback); +class GetWindowPosition extends ClientCommand { + performAction(callback) { + this.transportActions.getWindowPosition(callback); } -}; +} + +module.exports = GetWindowPosition; diff --git a/lib/api/protocol/window/getRect.js b/lib/api/client-commands/window/getRect.js similarity index 86% rename from lib/api/protocol/window/getRect.js rename to lib/api/client-commands/window/getRect.js index 679979e6a2..3af47bc0f3 100644 --- a/lib/api/protocol/window/getRect.js +++ b/lib/api/client-commands/window/getRect.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Fetches the [window rect](https://w3c.github.io/webdriver/#dfn-window-rect) - size and position of the current window. @@ -36,8 +36,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.getSize * @api protocol.window */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.getWindowRect(callback); +class GetWindowRect extends ClientCommand { + performAction(callback) { + this.transportActions.getWindowRect(callback); } -}; +} + +module.exports = GetWindowRect; diff --git a/lib/api/protocol/window/getSize.js b/lib/api/client-commands/window/getSize.js similarity index 79% rename from lib/api/protocol/window/getSize.js rename to lib/api/client-commands/window/getSize.js index 841ec70818..47d39a6a89 100644 --- a/lib/api/protocol/window/getSize.js +++ b/lib/api/client-commands/window/getSize.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Get the size of the current window in pixels. @@ -25,8 +25,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.getRect * @api protocol.window */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.getWindowSize(callback); +class GetWindowSize extends ClientCommand { + performAction(callback) { + this.transportActions.getWindowSize(callback); } -}; +} + +module.exports = GetWindowSize; diff --git a/lib/api/protocol/window/maximize.js b/lib/api/client-commands/window/maximize.js similarity index 76% rename from lib/api/protocol/window/maximize.js rename to lib/api/client-commands/window/maximize.js index 1eccdb70eb..1e7f254222 100644 --- a/lib/api/protocol/window/maximize.js +++ b/lib/api/client-commands/window/maximize.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Increases the window to the maximum available size without going full-screen. @@ -24,8 +24,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.fullscreen * @api protocol.window */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.maximizeWindow(callback); +class MaximizeWindow extends ClientCommand { + performAction(callback) { + this.transportActions.maximizeWindow(callback); } -}; +} + +module.exports = MaximizeWindow; diff --git a/lib/api/protocol/window/minimize.js b/lib/api/client-commands/window/minimize.js similarity index 79% rename from lib/api/protocol/window/minimize.js rename to lib/api/client-commands/window/minimize.js index 1b3f82a429..2432f98200 100644 --- a/lib/api/protocol/window/minimize.js +++ b/lib/api/client-commands/window/minimize.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Hides the window in the system tray. If the window happens to be in fullscreen mode, it is restored the normal state then it will be "iconified" - minimize or hide the window from the visible screen. @@ -24,8 +24,10 @@ const ProtocolAction = require('../_base-action.js'); * @see window.fullscreen * @api protocol.window */ -module.exports = class Session extends ProtocolAction { - command(callback) { - return this.transportActions.minimizeWindow(callback); +class MinimizeWindow extends ClientCommand { + performAction(callback) { + this.transportActions.minimizeWindow(callback); } -}; +} + +module.exports = MinimizeWindow; diff --git a/lib/api/protocol/window/open.js b/lib/api/client-commands/window/open.js similarity index 81% rename from lib/api/protocol/window/open.js rename to lib/api/client-commands/window/open.js index 134c0317a8..754e00b945 100644 --- a/lib/api/protocol/window/open.js +++ b/lib/api/client-commands/window/open.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Opens a new tab (default) or a separate new window, and changes focus to the newly opened tab/window. @@ -38,7 +38,7 @@ const ProtocolAction = require('../_base-action.js'); * @see window.switchTo * @api protocol.window */ -module.exports = class Session extends ProtocolAction { +class OpenNewWindow extends ClientCommand { static get isTraceable() { return true; } @@ -47,12 +47,22 @@ module.exports = class Session extends ProtocolAction { return 'openNew'; } + performAction(callback) { + const {windowType} = this; + + this.transportActions.openNewWindow(windowType, callback); + } + command(type = 'tab', callback) { if (typeof type == 'function' && callback === undefined) { callback = arguments[0]; type = 'tab'; } - return this.transportActions.openNewWindow(type, callback); + this.windowType = type; + + return super.command(callback); } -}; +} + +module.exports = OpenNewWindow; diff --git a/lib/api/protocol/window/setPosition.js b/lib/api/client-commands/window/setPosition.js similarity index 76% rename from lib/api/protocol/window/setPosition.js rename to lib/api/client-commands/window/setPosition.js index e140d04be7..92ba88f257 100644 --- a/lib/api/protocol/window/setPosition.js +++ b/lib/api/client-commands/window/setPosition.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Set the position of the current window - move the window to the chosen position. @@ -27,12 +27,23 @@ const ProtocolAction = require('../_base-action.js'); * @see window.setRect * @api protocol.window */ -module.exports = class Session extends ProtocolAction { +class SetWIndowPosition extends ClientCommand { + performAction(callback) { + const {xOffset, yOffset} = this; + + this.transportActions.setWindowPosition(xOffset, yOffset, callback); + } + command(x, y, callback) { if (typeof x !== 'number' || typeof y !== 'number') { throw new Error('Coordinates passed to .window.getPosition() must be of type number.'); } - return this.transportActions.setWindowPosition(x, y, callback); + this.xOffset = x; + this.yOffset = y; + + return super.command(callback); } -}; +} + +module.exports = SetWIndowPosition; diff --git a/lib/api/protocol/window/setRect.js b/lib/api/client-commands/window/setRect.js similarity index 88% rename from lib/api/protocol/window/setRect.js rename to lib/api/client-commands/window/setRect.js index 3eab494b81..70dfaeb919 100644 --- a/lib/api/protocol/window/setRect.js +++ b/lib/api/client-commands/window/setRect.js @@ -1,5 +1,5 @@ -const ProtocolAction = require('../_base-action.js'); -const Utils = require('../../../utils'); +const ClientCommand = require('../_base-command.js'); +const Utils = require('../../../utils/index.js'); /** * Change the [window rect](https://w3c.github.io/webdriver/#dfn-window-rect) - size and position of the current window. @@ -44,7 +44,13 @@ const Utils = require('../../../utils'); * @see window.setSize * @api protocol.window */ -module.exports = class Session extends ProtocolAction { +class SetWindowRect extends ClientCommand { + performAction(callback) { + const {windowOptions} = this; + + this.transportActions.setWindowRect(windowOptions, callback); + } + command(options, callback) { const {width, height, x, y} = options; @@ -78,6 +84,10 @@ module.exports = class Session extends ProtocolAction { } } - return this.transportActions.setWindowRect(options, callback); + this.windowOptions = options; + + return super.command(callback); } -}; +} + +module.exports = SetWindowRect; diff --git a/lib/api/protocol/window/setSize.js b/lib/api/client-commands/window/setSize.js similarity index 75% rename from lib/api/protocol/window/setSize.js rename to lib/api/client-commands/window/setSize.js index 122bfa24ac..a518491fd7 100644 --- a/lib/api/protocol/window/setSize.js +++ b/lib/api/client-commands/window/setSize.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Set the size of the current window in CSS pixels. @@ -25,16 +25,27 @@ const ProtocolAction = require('../_base-action.js'); * @see window.setRect * @api protocol.window */ -module.exports = class Session extends ProtocolAction { +class SetWindowSize extends ClientCommand { static get AliasName() { return 'resize'; } + performAction(callback) { + const {width, height} = this; + + this.transportActions.setWindowSize(width, height, callback); + } + command(width, height, callback) { if (typeof width !== 'number' || typeof height !== 'number') { throw new Error('First two arguments passed to .window.getPosition() must be of type number.'); } - return this.transportActions.setWindowSize(width, height, callback); + this.width = width; + this.height = height; + + return super.command(callback); } -}; +} + +module.exports = SetWindowSize; diff --git a/lib/api/protocol/window/switchTo.js b/lib/api/client-commands/window/switchTo.js similarity index 90% rename from lib/api/protocol/window/switchTo.js rename to lib/api/client-commands/window/switchTo.js index 99f972fb30..7a2b6309a4 100644 --- a/lib/api/protocol/window/switchTo.js +++ b/lib/api/client-commands/window/switchTo.js @@ -1,4 +1,4 @@ -const ProtocolAction = require('../_base-action.js'); +const ClientCommand = require('../_base-command.js'); /** * Change focus to another window. @@ -72,7 +72,7 @@ const ProtocolAction = require('../_base-action.js'); * @link /#switch-to-window * @api protocol.window */ -module.exports = class Action extends ProtocolAction { +class SwitchToWindow extends ClientCommand { static get isTraceable() { return true; } @@ -81,11 +81,21 @@ module.exports = class Action extends ProtocolAction { return 'switch'; } + performAction(callback) { + const {windowHandle} = this; + + this.transportActions.switchToWindow(windowHandle, callback); + } + command(windowHandle, callback) { if (typeof windowHandle !== 'string') { throw new Error(`windowHandle argument passed to .window.switchTo() must be a string; received: ${typeof windowHandle} (${windowHandle}).`); } - return this.transportActions.switchToWindow(windowHandle, callback); + this.windowHandle = windowHandle; + + return super.command(callback); } -}; +} + +module.exports = SwitchToWindow; diff --git a/lib/api/protocol/waitUntil.js b/lib/api/protocol/waitUntil.js index ba5477723f..3af89b24a4 100644 --- a/lib/api/protocol/waitUntil.js +++ b/lib/api/protocol/waitUntil.js @@ -69,7 +69,7 @@ module.exports = class WaitUntil extends ProtocolAction { if (args.length >= 3 && WaitUntil.hasMessage(args[2])) { timeMs = WaitUntil.isParamTypeValid(args[0], 'number') ? args[0] : timeMs; - retryInterval = WaitUntil.isParamTypeValid(args[1], 'number') ? args[1] : timeMs; + retryInterval = WaitUntil.isParamTypeValid(args[1], 'number') ? args[1] : retryInterval; message = args[2]; callback = isFunction(args[3]) ? args[3] : callback; } else { diff --git a/lib/api/protocol/windowRect.js b/lib/api/protocol/windowRect.js index 391750b3ae..663478b3d3 100644 --- a/lib/api/protocol/windowRect.js +++ b/lib/api/protocol/windowRect.js @@ -22,13 +22,13 @@ const ProtocolAction = require('./_base-action.js'); * browser.windowRect({width: 600, height: 300}); * * // Retrieve the attributes - * browser.windowRect(function(result) { + * browser.windowRect(null, function(result) { * console.log(result.value); * }); * }, * * 'windowRect ES6 demo test': async function(browser) { - * const resultValue = await browser.windowRect(); + * const resultValue = await browser.windowRect(null); * console.log('result value', resultValue); * } * } diff --git a/lib/api/web-element/commands/findAllByText.js b/lib/api/web-element/commands/findAllByText.js index 2193f7b7f8..bace17c813 100644 --- a/lib/api/web-element/commands/findAllByText.js +++ b/lib/api/web-element/commands/findAllByText.js @@ -2,7 +2,7 @@ const {By} = require('selenium-webdriver'); module.exports.command = function (text, {exact = true} = {}) { const expr = exact ? `text()="${text}"` : `contains(text(),"${text}")`; - const selector = By.xpath(`//*[${expr}]`); + const selector = By.xpath(`.//*[${expr}]`); return this.createScopedElements({selector}, {parentElement: this, commandName: 'findAllByText'}); }; diff --git a/lib/api/web-element/commands/findByLabelText.js b/lib/api/web-element/commands/findByLabelText.js index c57389a9c2..44a5d55c55 100644 --- a/lib/api/web-element/commands/findByLabelText.js +++ b/lib/api/web-element/commands/findByLabelText.js @@ -1,43 +1,28 @@ const {By} = require('selenium-webdriver'); -module.exports.command = function (text, {exact = true, ...options} = {}) { - const findByForId = async (text, {exact, ...options}) => { - const expr = exact ? `text()="${text}"` : `contains(text(),"${text}")`; - const selector = By.xpath(`//label[${expr}]`); +module.exports.command = function (text, {exact = true, timeout, retryInterval, suppressNotFoundErrors} = {}) { - const labelWebElement = await this.find({ - ...options, - selector, - suppressNotFoundErrors: true - }); - - if (!labelWebElement) { + const findByForId = async (instance, labelElement) => { + if (!labelElement) { return null; } - const forAttribute = await labelWebElement.getAttribute('for'); + const forAttribute = await labelElement.getAttribute('for'); if (!forAttribute) { return null; } - return this.find({ - ...options, + const element = await instance.waitUntilElementsLocated({ selector: By.css(`input[id="${forAttribute}"]`), - suppressNotFoundErrors: true + timeout, + retryInterval }); - }; - const findByAriaLabelled = async (text, {exact, ...options}) => { - const expr = exact ? `text()="${text}"` : `contains(text(),"${text}")`; - const selector = By.xpath(`//label[${expr}]`); - - const labelWebElement = await this.find({ - ...options, - selector, - suppressNotFoundErrors: true - }); + return element; + }; + const findByAriaLabelled = async (instance, labelWebElement) => { if (!labelWebElement) { return null; } @@ -48,121 +33,137 @@ module.exports.command = function (text, {exact = true, ...options} = {}) { return null; } - return this.find({ - ...options, + return instance.waitUntilElementsLocated({ selector: By.css(`input[aria-labelledby="${idAttribute}"]`), - suppressNotFoundErrors: true + timeout, + retryInterval }); }; - const findByDirectNesting = async (text, {exact, ...options}) => { - const expr = exact ? `text()="${text}"` : `contains(text(),"${text}")`; - const selector = By.xpath(`//label[${expr}]`); - - const labelElementPromise = this.find({ - ...options, - selector, - suppressNotFoundErrors: true - }); - - const labelElement = await labelElementPromise; - - if (!labelElement) { + const findByDirectNesting = async (labelWebElement) => { + if (!labelWebElement) { return null; } - return labelElementPromise.find({ - ...options, - selector: By.css('input'), - suppressNotFoundErrors: true - }); + try { + return await labelWebElement.findElement(By.css('input')); + } catch (err) { + return null; + } }; - const findByDeepNesting = async (text, {exact, ...options}) => { - const selector = exact - ? By.xpath(`//label[*[text() = "${text}"]]`) - : By.xpath(`//label[*[contains(text(), "${text}")]]`); + const findByDeepNesting = async (text, {exact}) => { + const expr = exact ? `*[text()="${text}"]` : `*[contains(text(), "${text}")]`; + const selector = By.xpath(`.//label[${expr}]`); - const labelElementPromise = this.find({ - ...options, + const labelElement = await this.find({ selector, + timeout, + retryInterval, suppressNotFoundErrors: true }); - const labelElement = await labelElementPromise; - if (!labelElement) { return null; } - return labelElementPromise.find({ - ...options, - selector: By.css('input'), - suppressNotFoundErrors: true - }); + try { + return await labelElement.findElement(By.css('input')); + } catch (err) { + return null; + } }; - const findByAriaLabel = async (text, {exact, ...options}) => { - return this.find({ - ...options, + const findByAriaLabel = async (text, {exact}) => { + const labelElement = await this.find({ selector: By.css(`input[aria-label${exact ? '' : '*'}="${text}"]`), + timeout, + retryInterval, suppressNotFoundErrors: true }); - }; - const createAction = (actions, webElement) => async function() { - let element; + return labelElement; + }; - try { - element = await findByForId(text, {exact, ...options}); - } catch { - // Ignore. - } + const findFromLabel = async (instance, labelElement) => { + let element = null; - if (!element) { + if (labelElement) { try { - element = await findByAriaLabelled(text, {exact, ...options}); - } catch { - // Ignore. + element = await findByForId(instance, labelElement); + } catch (err) { + // ignore } - } - if (!element) { - try { - element = await findByDirectNesting(text, {exact, ...options}); - } catch { - // Ignore. + if (!element) { + try { + element = await findByAriaLabelled(instance, labelElement); + } catch (err) { + // ignore + } } - } - if (!element) { - try { - element = await findByDeepNesting(text, {exact, ...options}); - } catch { - // Ignore. + if (!element) { + try { + element = await findByDirectNesting(labelElement); + } catch (err) { + // ignore + } } } - if (!element) { - try { - element = await findByAriaLabel(text, {exact, ...options}); - } catch { - // Ignore. - } - } + return element; + }; - if (element) { - return element; - } + const createAction = function (labelElement) { + const instance = this; - const error = new Error(`The element associated with label whose text ${exact ? 'equals' : 'contains'} "${text}" has not been found.`); + return async function() { + let element = await findFromLabel(instance, labelElement); - throw error; + if (element) { + return element; + } + + const error = new Error(`The element associated with label whose text ${exact ? 'equals' : 'contains'} "${text}" has not been found.`); + if (!suppressNotFoundErrors) { + throw error; + } + + return null; + }; }; - const node = this.queueAction({name: 'findByLabelText', createAction}); + const expr = exact ? `text()="${text}"` : `contains(text(),"${text}")`; + const selector = By.xpath(`.//label[${expr}]`); - return this.createScopedElement(node.deferred.promise); -}; + // eslint-disable-next-line no-async-promise-executor + return this.createScopedElement(new Promise(async (resolve, reject) => { + const labelElement = await this.find({ + selector, + timeout, + retryInterval, + suppressNotFoundErrors: true + }); + if (labelElement) { + const node = this.queueAction({name: 'findByLabelText', createAction: function () { + return createAction.call(this, labelElement); + }}); + node.deferred.promise.then(resolve, reject); + + return; + } + + const byDeepNesting = await findByDeepNesting(text, {exact}); + if (byDeepNesting) { + return resolve(byDeepNesting); + } + + const byAriaLabel = await findByAriaLabel(text, {exact}); + if (byAriaLabel) { + return resolve(byAriaLabel); + } + })); +}; diff --git a/lib/api/web-element/commands/findByText.js b/lib/api/web-element/commands/findByText.js index d0051f25f9..39587aa120 100644 --- a/lib/api/web-element/commands/findByText.js +++ b/lib/api/web-element/commands/findByText.js @@ -2,8 +2,8 @@ const {By} = require('selenium-webdriver'); module.exports.command = function(text, {exact = true, ...options} = {}) { const selector = exact - ? By.xpath(`//*[text()="${text}"]`) - : By.xpath(`//*[contains(text(),"${text}")]`); + ? By.xpath(`.//*[text()="${text}"]`) + : By.xpath(`.//*[contains(text(),"${text}")]`); return this.find({ ...options, diff --git a/lib/api/web-element/commands/sendKeys.js b/lib/api/web-element/commands/sendKeys.js index 7c5fa2924f..eca1152797 100644 --- a/lib/api/web-element/commands/sendKeys.js +++ b/lib/api/web-element/commands/sendKeys.js @@ -1,5 +1,12 @@ -module.exports.command = function(...keys) { +module.exports.command = function(...args) { + const keys = args.reduce((prev, key) => { + const keyList = Array.isArray(key) ? key : [key]; + prev.push(...keyList); + + return prev; + }, []); + return this.runQueuedCommand('sendKeysToElement', { - args: keys + args: [keys] }); -}; \ No newline at end of file +}; diff --git a/lib/api/web-element/commands/setValue.js b/lib/api/web-element/commands/setValue.js new file mode 100644 index 0000000000..d27c86ae3a --- /dev/null +++ b/lib/api/web-element/commands/setValue.js @@ -0,0 +1,12 @@ +module.exports.command = function(...args) { + const keys = args.reduce((prev, key) => { + const keyList = Array.isArray(key) ? key : [key]; + prev.push(...keyList); + + return prev; + }, []); + + return this.runQueuedCommand('setElementValue', { + args: [keys] + }); +}; diff --git a/lib/api/web-element/commands/update.js b/lib/api/web-element/commands/update.js index 4916657e3e..d27c86ae3a 100644 --- a/lib/api/web-element/commands/update.js +++ b/lib/api/web-element/commands/update.js @@ -1,5 +1,12 @@ -module.exports.command = function(...keys) { +module.exports.command = function(...args) { + const keys = args.reduce((prev, key) => { + const keyList = Array.isArray(key) ? key : [key]; + prev.push(...keyList); + + return prev; + }, []); + return this.runQueuedCommand('setElementValue', { - args: keys + args: [keys] }); -}; \ No newline at end of file +}; diff --git a/lib/api/web-element/element-locator.js b/lib/api/web-element/element-locator.js index 3cb63cda2f..46ceb965c8 100644 --- a/lib/api/web-element/element-locator.js +++ b/lib/api/web-element/element-locator.js @@ -3,10 +3,11 @@ const {By, RelativeBy} = require('selenium-webdriver'); const Utils = require('../../utils'); const Element = require('../../element/index.js'); const Locator = require('../../element/locator.js'); +const NightwatchLocator = require('../../element/locator-factory'); class ElementLocator { constructor(selector, options = {}) { - this.index = ElementLocator.getOrDefault(selector, 'index', 0); + this.index = ElementLocator.getOrDefault(selector, '__index', 0); this.timeout = ElementLocator.getOrDefault(selector, 'timeout', options.waitForConditionTimeout); this.retryInterval = ElementLocator.getOrDefault(selector, 'retryInterval', options.waitForConditionPollInterval); this.locateStrategy = ElementLocator.getLocateStrategy(selector, options.locateStrategy); @@ -25,7 +26,9 @@ class ElementLocator { static getOrDefault(obj, prop, defaultValue) { // eslint-disable-next-line no-prototype-builtins - return Utils.isObject(obj) && obj.hasOwnProperty(prop) ? obj[prop] : defaultValue; + const isDefined = Utils.isObject(obj) && obj.hasOwnProperty(prop) && Utils.isDefined(obj[prop]); + + return isDefined ? obj[prop] : defaultValue; } static getLocateStrategy(element, strategy) { @@ -72,10 +75,18 @@ class ElementLocator { static getCondition(element, strategy) { const locateStrategy = ElementLocator.getLocateStrategy(element, strategy); - if (element instanceof By || element instanceof RelativeBy || element instanceof Element) { + if (element instanceof By || element instanceof RelativeBy) { return element; } + if (element instanceof Element) { + if (element.usingRecursion) { + return element; + } + + return NightwatchLocator.create(element); + } + if (!ElementLocator.isElementDescriptor(element)) { return By[Locator.AVAILABLE_LOCATORS[locateStrategy]](element); } diff --git a/lib/api/web-element/factory.js b/lib/api/web-element/factory.js index ec05375c20..e44ce74084 100644 --- a/lib/api/web-element/factory.js +++ b/lib/api/web-element/factory.js @@ -1,6 +1,7 @@ const ScopedWebElements = require('./scoped-elements.js'); const ScopedWebElement = require('./scoped-element.js'); const ScopedElementAssertions = require('./assert/element-assertions.js'); +const WaitUntil = require('./waitUntil.js'); const Element = require('../../element'); const ScopedValueAssertions = require('./assert/value-assertions.js'); @@ -43,6 +44,30 @@ const createScopedWebElement = function(selector, parentElement, nightwatchInsta configurable: true }); + Object.defineProperty(exported, 'waitUntil', { + value(args) { + + + return createScopedWebElement(new Promise(function (resolve, reject) { + + if (typeof args === 'string') { + args = {action: args}; + } + + const waitUntil = new WaitUntil(instance, { + selector, + nightwatchInstance, + ...args + }); + + return waitUntil.wait() + .then(element => resolve(element)); + + }.bind(instance)), parentElement, nightwatchInstance); + } + + }); + Object.defineProperty(exported, 'then', { value(onFulfilled, onRejected) { return instance.then(onFulfilled, onRejected); diff --git a/lib/api/web-element/scoped-element.js b/lib/api/web-element/scoped-element.js index e78ad95d3c..44c145c77d 100644 --- a/lib/api/web-element/scoped-element.js +++ b/lib/api/web-element/scoped-element.js @@ -1,6 +1,6 @@ const fs = require('fs'); const path = require('path'); -const {until, WebElement, WebElementPromise} = require('selenium-webdriver'); +const {until, WebElement, WebElementPromise, Condition} = require('selenium-webdriver'); const {ShadowRoot} = require('selenium-webdriver/lib/webdriver'); const {Logger, isFunction, createPromise} = require('../../utils/'); @@ -75,31 +75,107 @@ class ScopedWebElement { } - async findElement({parentElement, condition, index, timeout, retryInterval}) { - const createAction = () => async ({args}) => { - const parentElement = args[0]; - const webElements = parentElement && parentElement.webElement - ? await parentElement.webElement.findElements(condition) - : await this.driver.wait(until.elementsLocated(condition), timeout, null, retryInterval); + async waitUntilElementsLocated(selector) { + const {timeout, condition, retryInterval} = ScopedElementLocator.create(selector, this.nightwatchInstance); + const webElements = await this.driver.wait(until.elementsLocated(condition), timeout, null, retryInterval); + + if (webElements.length === 0) { + return null; + } + + return webElements[0]; + } + + async locateElements({parentElement, selector, timeout, retryInterval}) { + const createLocateElement = () => { + return parentElement && parentElement.webElement ? function(locator) { + return new Condition('for at least one element to be located ' + locator, function (driver) { + return parentElement.webElement.findElements(locator).then(function (elements) { + return elements.length > 0 ? elements : null; + }); + }); + } : until.elementsLocated; + }; + + const locateFn = createLocateElement(); + const webElements = await this.driver.wait(locateFn(selector), timeout, null, retryInterval); + + return webElements; + } - if (webElements.length === 0) { - const err = new Error(`Cannot find element with "${condition}" selector in ${timeout} milliseconds.`); - this.reporter.registerTestError(err); + async findElementUsingRecursion({parentElement, recursiveElement, timeout, retryInterval}) { + const allElements = Array.isArray(recursiveElement.selector) ? recursiveElement.selector.slice() : [ + recursiveElement + ]; - return; + let result = null; + while (allElements.length > 0) { + const nextElement = allElements.shift(); + if (result) { + parentElement = {webElement: result}; } - if (index > webElements.length) { - const err = new Error(`The index "${index}" is out of bounds for selector "${condition}".`); - this.reporter.registerTestError(err); + const {condition, index} = ScopedElementLocator.create(nextElement, this.nightwatchInstance); + result = await this.findElement({parentElement, selector: condition, index, timeout, retryInterval}); - return; + if (!result) { + break; } + } + + return result; + } + + async findElement({parentElement, selector, index, timeout, retryInterval}) { + const webElements = await this.locateElements({parentElement, selector, timeout, retryInterval}); + + if (webElements.length === 0) { + const err = new Error(`Cannot find element with "${selector}" selector in ${timeout} milliseconds.`); + this.reporter.registerTestError(err); + + return; + } + + if (index > webElements.length) { + const err = new Error(`The index "${index}" is out of bounds for selector "${selector}".`); + this.reporter.registerTestError(err); + + return; + } + + return webElements[index]; + } + + async findElementAction({parentElement, condition, index, timeout, retryInterval, abortOnFailure, suppressNotFoundErrors}) { + const createAction = () => async ({args}) => { + const parentElement = args[0]; + + try { + if (condition.usingRecursion) { + return await this.findElementUsingRecursion({parentElement, recursiveElement: condition, timeout, retryInterval}); + } + + return await this.findElement({parentElement, selector: condition, index, timeout, retryInterval}); + } catch (error) { + if (suppressNotFoundErrors) { + return null; + } + + const narrowedError = createNarrowedError({error, condition, timeout}); + Logger.error(narrowedError); - return webElements[index]; + if (abortOnFailure) { + this.reporter.registerTestError(narrowedError); + // TODO: find a way to reject here without unhandled promise rejection + // reject(narrowedError); + } + + return null; + } }; const node = this.queueAction({name: 'find', createAction, namespace: 'element', args: [parentElement]}); + node.printArgs = function() { if (condition.selector) { return `{ ${condition.selector} }`; @@ -149,25 +225,10 @@ class ScopedWebElement { return resolve(condition); } - try { - const webElement = await this.findElement({parentElement, condition, index, timeout, retryInterval}); - - resolve(webElement); - } catch (error) { - if (suppressNotFoundErrors) { - return resolve(null); - } - - const narrowedError = createNarrowedError({error, condition, timeout}); - Logger.error(narrowedError); - - if (abortOnFailure) { - this.reporter.registerTestError(narrowedError); - // TODO: find a way to reject here without unhandled promise rejection - // reject(narrowedError); - } - resolve(null); - } + const webElement = await this.findElementAction( + {parentElement, condition, index, timeout, retryInterval, abortOnFailure, suppressNotFoundErrors} + ); + resolve(webElement); })); } @@ -228,7 +289,7 @@ class ScopedWebElement { args, context: null, deferred: createPromise(), - commandFn: createAction(this.nightwatchInstance.transportActions, this.webElement), + commandFn: createAction.call(this, this.nightwatchInstance.transportActions, this.webElement), namespace, rejectPromise, commandName: name diff --git a/lib/api/web-element/scoped-elements.js b/lib/api/web-element/scoped-elements.js index bb057529bb..615725ae46 100644 --- a/lib/api/web-element/scoped-elements.js +++ b/lib/api/web-element/scoped-elements.js @@ -21,7 +21,7 @@ class ScopedElements { resolve(selector); } else { try { - const webElements = await this.findElements(selector); + const webElements = await this.findElementsAction(selector); resolve(webElements); } catch (error) { @@ -31,7 +31,39 @@ class ScopedElements { }); } - async findElements(descriptor) { + async findElementsUsingRecursion({parentElement, recursiveElement, timeout, retryInterval}) { + const allElements = Array.isArray(recursiveElement.selector) ? recursiveElement.selector.slice() : [ + recursiveElement + ]; + + let result = []; + while (allElements.length > 0) { + const nextElement = allElements.shift(); + if (result.length) { + parentElement = {webElement: result[0]}; + } + + const {condition} = ScopedElementLocator.create(nextElement, this.nightwatchInstance); + result = await this.findElements({parentElement, selector: condition, timeout, retryInterval}); + + if (!result || result.length === 0) { + result = []; + break; + } + } + + return result; + } + + async findElements({parentElement, selector, timeout, retryInterval}) { + const webElements = parentElement && parentElement.webElement + ? await parentElement.webElement.findElements(selector) + : await this.nightwatchInstance.transport.driver.wait(until.elementsLocated(selector), timeout, null, retryInterval); + + return webElements; + } + + async findElementsAction(descriptor) { const { timeout, condition, @@ -44,11 +76,11 @@ class ScopedElements { const parentElement = args[0]; try { - const webElements = parentElement && parentElement.webElement - ? await parentElement.webElement.findElements(condition) - : await this.nightwatchInstance.transport.driver.wait(until.elementsLocated(condition), timeout, null, retryInterval); + if (condition.usingRecursion) { + return await this.findElementsUsingRecursion({parentElement, recursiveElement: condition, timeout, retryInterval}); + } - return webElements; + return await this.findElements({parentElement, selector: condition, timeout, retryInterval}); } catch (error) { if (suppressNotFoundErrors) { return []; diff --git a/lib/api/web-element/waitUntil.js b/lib/api/web-element/waitUntil.js new file mode 100644 index 0000000000..32a99ed41d --- /dev/null +++ b/lib/api/web-element/waitUntil.js @@ -0,0 +1,127 @@ +const until = require('selenium-webdriver/lib/until'); +const {AssertionRunner} = require('../../assertion'); +const {isDefined, format} = require('../../utils'); + +const mapToSeleniumFunction = { + 'selected': until.elementIsSelected, + 'not.selected': until.elementIsNotSelected, + 'visible': until.elementIsVisible, + 'not.visible': until.elementIsNotVisible, + 'enabled': until.elementIsEnabled, + 'not.enabled': until.elementIsDisabled, + 'disabled': until.elementIsDisabled +}; + + + +class WaitUntil { + constructor(scopedElement, {action, timeout, retryInterval, message, nightwatchInstance, selector, abortOnFailure}) { + this.scopedElement = scopedElement; + this.conditionFn = mapToSeleniumFunction[action]; + this.nightwatchInstance = nightwatchInstance; + this.action = action; + this.message = message; + this.selector = selector; + this.timeout = timeout || this.nightwatchInstance.settings.globals.waitForConditionTimeout; + this.retryInterval = retryInterval || this.nightwatchInstance.settings.globals.waitForConditionPollInterval; + this.abortOnFailure = isDefined(abortOnFailure) ? abortOnFailure : this.nightwatchInstance.settings.globals.abortOnAssertionFailure; + + } + + createNode() { + const createAction = (actions, webElement) => function() { + if (!this.conditionFn) { + throw new Error(`Invalid action ${this.action} for WaitUntil Command. Possible actions: ${Object.keys(mapToSeleniumFunction).toString()}`); + } + + return actions['wait'](this.conditionFn(webElement), this.timeout, this.retryInterval, this.message, ()=>{}) + .then(result => { + const elapsedTime = new Date().getTime() - node.startTime; + if (result.error) { + const actual = result.error.name === 'NightwatchElementError' ? 'not found' : null; + + return this.fail(result, actual, elapsedTime); + } + + return this.pass(result, elapsedTime); + }) + .catch(err=> err) + .then(result => { + node.deferred.resolve(result); + + return result; + }); + }.bind(this); + + const node = this.scopedElement.queueAction({name: 'waitUntil', createAction}); + + return node; + } + + + async wait() { + const assertApi = this.nightwatchInstance.api.assert; + try { + const node = this.createNode(); + + return this.scopedElement.waitFor(node.deferred.promise); + } catch (err) { + assertApi.ok(false, err.message); + } + } + + formatMsg(message, timeMs) { + const defaultMsg = this.message || message; + + return format(defaultMsg, this.selector, timeMs); + } + + assert({result, passed, err, message, elapsedTime}) { + const {reporter} = this.scopedElement; + + const runner = new AssertionRunner({abortOnFailure: this.abortOnFailure, passed, err, message, reporter, elapsedTime}); + + return runner.run(result); + } + + pass(result, elapsedTime) { + const sliceAction = this.action.split('.'); + const expected = sliceAction[0] === 'not' ? `not ${sliceAction[1]}` : this.action; + + const message = this.formatMsg(`Element <%s> was ${expected} in %d milliseconds`, elapsedTime); + + return this.assert({ + result, + passed: true, + err: { + expected + }, + elapsedTime, + message + }); + } + + fail(result, actual, elapsedTime) { + + const sliceAction = this.action.split('.'); + + actual = actual ? actual : sliceAction[0] === 'not' ? sliceAction[1] : `not ${this.action}`; + const expected = sliceAction[0] === 'not' ? `not ${sliceAction[1]}` : this.action; + const message = this.formatMsg(`Timed out while waiting for element <%s> to be ${expected} for %d milliseconds`, this.timeout); + + return this.assert({ + result, + passed: false, + message, + err: { + actual, + expected + }, + elapsedTime + }); + } + + +} + +module.exports = WaitUntil; \ No newline at end of file diff --git a/lib/core/asynctree.js b/lib/core/asynctree.js index 3abd41016e..317310c494 100644 --- a/lib/core/asynctree.js +++ b/lib/core/asynctree.js @@ -47,6 +47,10 @@ class AsyncTree extends EventEmitter{ if (childNode) { const result = await this.runChildNode(childNode); + if (result instanceof Error && result.namespace === 'verify') { + return null; + } + return result; } @@ -123,6 +127,7 @@ class AsyncTree extends EventEmitter{ if (result instanceof Error) { err = node.handleError(result); + err.namespace = node.namespace; abortOnFailure = err.abortOnFailure || Utils.isUndefined(err.abortOnFailure); if (this.foreignRunner) { diff --git a/lib/core/client.js b/lib/core/client.js index 64d2296ccd..41ce5ea953 100644 --- a/lib/core/client.js +++ b/lib/core/client.js @@ -310,6 +310,10 @@ class NightwatchClient extends EventEmitter { } return newResult; + }) + .catch(err => { + Logger.error(err); + callback(err); }); } diff --git a/lib/index.js b/lib/index.js index 884ea0dcf8..edef21c4a5 100644 --- a/lib/index.js +++ b/lib/index.js @@ -389,15 +389,6 @@ Object.defineProperty(Nightwatch, 'Capabilities', { } }); -Object.defineProperty(Nightwatch, 'element', { - configurable: true, - value: function(locator) { - const client = global.nightwatch_client || global.browser; - - return ElementGlobal.element({locator, client}); - } -}); - // Named exports const { browser, app, appium, alerts, cookies, document, window, diff --git a/lib/page-object/base-object.js b/lib/page-object/base-object.js index c586ef3c35..8c8e60a69c 100644 --- a/lib/page-object/base-object.js +++ b/lib/page-object/base-object.js @@ -5,12 +5,12 @@ const Element = require('../element'); class BaseObject { static get WrappedProtocolCommands() { return [ - 'element', 'elements', 'elementIdElement', 'elementIdElements' ]; } + /** * Returns the properties object passed as an argument (or null if no arguments are passed). * If the supplied properties argument is a function, it invokes that function with the page as its context. diff --git a/lib/page-object/command-wrapper.js b/lib/page-object/command-wrapper.js index b1975a9cbc..ed6d92d99e 100644 --- a/lib/page-object/command-wrapper.js +++ b/lib/page-object/command-wrapper.js @@ -1,8 +1,13 @@ const Element = require('../element'); const Utils = require('../utils'); -function isValidAssertion(commandName) { - return ['assert', 'verify', 'expect'].indexOf(commandName) > -1; +const ALLOWED_NAMESPACES = [ + 'alerts', 'cookies', 'document', + 'assert', 'verify', 'expect' +]; + +function isAllowedNamespace(commandName) { + return ALLOWED_NAMESPACES.indexOf(commandName) > -1; } class Command { @@ -29,8 +34,9 @@ class Command { } const Api = require('../api'); + const ScopedElementApi = require('../api/_loaders/element-api'); - return Utils.isString(item) && (item.startsWith('@') || Api.isElementCommand(commandName)); + return Utils.isString(item) && (item.startsWith('@') || Api.isElementCommand(commandName) || ScopedElementApi.isScopedElementCommand(commandName)); } static isUserDefinedElementCommand(commandName) { @@ -220,10 +226,20 @@ class Command { // then we need to retrieve the element using recursion const Section = require('./section.js'); if (this.parent instanceof Section) { - args[0] = Element.createFromSelector({ + inputElement.parent = this.parent; + inputElement = inputElement.getRecursiveLookupElement() || Element.createFromSelector({ locateStrategy: 'recursion', selector: [this.parent, inputElement] }); + + const ScopedElementApi = require('../api/_loaders/element-api'); + if (ScopedElementApi.isScopedElementCommand(this.commandName)) { + // only locate the parent sections recursively and then find the main element using + // original method and arguments. + this.onlyLocateSectionsRecursively = true; + } + + args[0] = inputElement; } } } @@ -292,22 +308,27 @@ class CommandLoader { */ static applyCommandsToTarget(parent, target, commands) { Object.keys(commands).forEach(function(commandName) { - if (isValidAssertion(commandName)) { + if (isAllowedNamespace(commandName)) { target[commandName] = target[commandName] || {}; const isChaiAssertion = commandName === 'expect'; - const assertions = commands[commandName]; + const namespace = commands[commandName]; - Object.keys(assertions).forEach(function(assertionName) { - target[commandName][assertionName] = CommandLoader.addCommand({ + Object.keys(namespace).forEach(function(nsCommandName) { + target[commandName][nsCommandName] = CommandLoader.addCommand({ target: target[commandName], - commandFn: assertions[assertionName], - commandName: assertionName, + commandFn: namespace[nsCommandName], + commandName: nsCommandName, parent, isChaiAssertion }); }); } else { + // don't load namespaces here, otherwise they'll be wrapped by a function. + if (Utils.isObject(commands[commandName])) { + return; + } + target[commandName] = CommandLoader.addCommand({ target, commandFn: commands[commandName], @@ -322,22 +343,65 @@ class CommandLoader { /** * @param parent - * @param target + * @param originalApi + * @param targetApi + * @param {string} commandName + * @returns {function} + */ + static wrapElementCommand(parent, originalApi, targetApi, commandName) { + const originalFn = originalApi[commandName]; + + const command = new Command(parent, commandName, false); + + return function(...args) { + const origArgs = args.slice(); + + command.parseElementSelector(args); + + if (command.onlyLocateSectionsRecursively) { + // only happens in case of new scoped element api, when non @-referenced selector is passed + // to element api methods for sections. Doing this is not really necessary for `find` and `findAll` + // methods but only for testing-library methods (which only accepts string as first argument), + // but we do it for them anyways. + + // transfer n-1 selectors to `element()` and the main selector (origArgs) to the actual method. + args[0].selector.pop(); + + const parentSectionElement = targetApi(args[0]); + + return parentSectionElement[commandName](...origArgs); + } + + return originalFn.apply(targetApi, args); + }; + } + + /** + * @param parent + * @param api * @param {Array} commands */ - static wrapProtocolCommands(parent, target, commands) { + static wrapProtocolCommands(parent, api, commands) { commands.forEach(commandName => { - const originalFn = target[commandName]; - target[commandName] = (function () { - const command = new Command(parent, commandName, false); + api[commandName] = CommandLoader.wrapElementCommand(parent, api, api, commandName); + }); + } - return function(...args) { - command.parseElementSelector(args); + static wrapScopedElementApi(parent, api, elementCommands) { + const wrappedElementFn = CommandLoader.wrapElementCommand(parent, api, api, 'element'); - return originalFn.apply(target, args); - }; - })(); + elementCommands.forEach(commandName => { + let names = commandName; + if (!Array.isArray(names)) { + names = [names]; + } + + names.forEach(commandName => { + wrappedElementFn[commandName] = CommandLoader.wrapElementCommand(parent, api.element, wrappedElementFn, commandName); + }); }); + + api.element = wrappedElementFn; } static addCommand({target, commandFn, commandName, parent, isChaiAssertion, isES6Async = false, overwrite = false}) { diff --git a/lib/page-object/index.js b/lib/page-object/index.js index 11157c9f14..b9d802d61d 100644 --- a/lib/page-object/index.js +++ b/lib/page-object/index.js @@ -1,6 +1,7 @@ const Utils = require('../utils'); const CommandWrapper = require('./command-wrapper.js'); const BaseObject = require('./base-object.js'); +const ScopedElementAPILoader = require('../api/_loaders/element-api'); const shouldReturnPromise = function() { return this.client.isES6AsyncTestcase || this.client.isES6AsyncCommand; @@ -55,17 +56,15 @@ class Page extends BaseObject { CommandWrapper.addWrappedCommands(this, this.commandLoader); CommandWrapper.wrapProtocolCommands(this, this.api, BaseObject.WrappedProtocolCommands); - - ['element', 'alerts', 'document'].forEach((command) => { - Object.defineProperty(this, command, { - get() { - return this.api[command]; - }, - enumerable: true, - configurable: false - }); + CommandWrapper.wrapScopedElementApi(this, this.api, ScopedElementAPILoader.availableElementCommands); + + Object.defineProperty(this, 'element', { + get() { + return this.api.element; + }, + enumerable: true, + configurable: false }); - } get api() { diff --git a/lib/page-object/section.js b/lib/page-object/section.js index af2a3576e6..8220c18ce7 100644 --- a/lib/page-object/section.js +++ b/lib/page-object/section.js @@ -1,5 +1,6 @@ const Element = require('../element'); const CommandWrapper = require('./command-wrapper.js'); +const ScopedElementAPILoader = require('../api/_loaders/element-api'); /** * Class that all sections subclass from @@ -37,15 +38,15 @@ class Section extends Element { CommandWrapper.addWrappedCommands(this, this.commandLoader); CommandWrapper.wrapProtocolCommands(this, this.api, BaseObject.WrappedProtocolCommands); - - // TODO: implement support for new element() api on sections - // Object.defineProperty(this, 'element', { - // get() { - // return this.api.element; - // }, - // enumerable: true, - // configurable: false - // }); + CommandWrapper.wrapScopedElementApi(this, this.api, ScopedElementAPILoader.availableElementCommands); + + Object.defineProperty(this, 'element', { + get() { + return this.api.element; + }, + enumerable: true, + configurable: false + }); } } diff --git a/lib/reporter/index.js b/lib/reporter/index.js index ad64d4ee7b..a229f57461 100644 --- a/lib/reporter/index.js +++ b/lib/reporter/index.js @@ -127,10 +127,18 @@ class Reporter extends SimplifiedReporter { this.testResults.setElapsedTime(); } + setTestSectionElapsedTime() { + this.testResults.setTestSectionElapsedTime(); + } + setTestStatus() { this.testResults.setTestStatus(); } + collectTestSectionOutput() { + this.testResults.collectTestSectionOutput(); + } + testSuiteFinished() { this.testResults.setTotalElapsedTime(); } diff --git a/lib/reporter/reporters/html.js b/lib/reporter/reporters/html.js index d1297a2e48..6b7454f6a1 100644 --- a/lib/reporter/reporters/html.js +++ b/lib/reporter/reporters/html.js @@ -111,7 +111,7 @@ class HtmlReporter extends BaseReporter { this.environments[testEnv].stats.failed += failedCount; this.environments[testEnv].stats.skipped += module.skippedCount; this.environments[testEnv].stats.total += passedCount + failedCount + module.skippedCount; - this.environments[testEnv].stats.time += this.environments[testEnv].stats.time || module.timeMs; + this.environments[testEnv].stats.time += module.timeMs || this.environments[testEnv].stats.time; this.environments[testEnv].metadata.platformName = this.environments[testEnv].metadata.platformName || sessionCapabilities.platformName; this.environments[testEnv].metadata.browserName = this.environments[testEnv].metadata.browserName || sessionCapabilities.browserName; this.environments[testEnv].metadata.browserVersion = this.environments[testEnv].metadata.browserVersion || sessionCapabilities.browserVersion; @@ -121,12 +121,15 @@ class HtmlReporter extends BaseReporter { } aggregateStats() { + const startTime = new Date(this.results.startTimestamp).getTime(); + const endTime = new Date(this.results.endTimestamp).getTime(); + const stats = { total: 0, passed: 0, failed: 0, skipped: 0, - time: 0 + time: endTime - startTime }; for (const envName of Object.keys(this.environments)) { @@ -136,7 +139,6 @@ class HtmlReporter extends BaseReporter { stats.failed += env.stats.failed; stats.skipped += env.stats.skipped; stats.total += env.stats.total; - stats.time += env.stats.time || 0; } return stats; diff --git a/lib/reporter/results.js b/lib/reporter/results.js index 15a9807bb5..055a3a28c1 100644 --- a/lib/reporter/results.js +++ b/lib/reporter/results.js @@ -49,6 +49,9 @@ module.exports = class Results { this.buildName = capabilities.buildName || desiredCapabilities.buildName || ''; const {webdriver = {}} = settings; this.host = webdriver.host || ''; + this.name = opts.suiteName || ''; + this.tags = opts.tags || []; + this.__retryTest = false; this.initCount(tests); } @@ -236,6 +239,8 @@ module.exports = class Results { suiteResults.results.status = this.getTestStatus(); suiteResults.results.seleniumLog = this.seleniumLog; suiteResults.results.host = this.host; + suiteResults.results.name = this.name; + suiteResults.results.tags = this.tags; // Backwards compat suiteResults.results.tests = this.testsCount; @@ -271,12 +276,20 @@ module.exports = class Results { return this.currentTestName; } + set retryTest(value) { + this.__retryTest = value; + } + + get retryTest() { + return this.__retryTest; + } + /** * @param {TestCase} testcase * @return {Object} */ createTestCaseResults(testcase) { - return { + const result = { time: 0, assertions: [], commands: [], @@ -286,8 +299,26 @@ module.exports = class Results { retries: testcase.retriesCount, skipped: 0, tests: 0, - status: Results.TEST_PASS + status: Results.TEST_PASS, + startTimestamp: new Date().getTime(), + httpOutput: [] }; + + if (this.retryTest && this.testSections[testcase.testName]) { + const retryTestData = this.testSections[testcase.testName]; + + result['retryTestData'] = [retryTestData]; + + if (retryTestData['retryTestData']) { + result['retryTestData'].push(...retryTestData['retryTestData']); + + delete retryTestData['retryTestData']; + } + + this.retryTest = false; + } + + return result; } resetLastError() { @@ -408,6 +439,26 @@ module.exports = class Results { return this; } + setTestSectionElapsedTime() { + const currentSection = this.getTestSection(this.currentSectionName); + const startTime = currentSection ? currentSection.startTimestamp : this.globalStartTime; + const endTime = new Date().getTime(); + const elapsedTime = endTime - startTime; + this.endTimestamp = endTime; + + this.time += elapsedTime; + + if (currentSection) { + currentSection.time = (elapsedTime/1000).toPrecision(4); + currentSection.timeMs = elapsedTime; + currentSection.startTimestamp = startTime; + currentSection.endTimestamp = endTime; + + } + + return this; + } + setTestStatus() { const currentTest = this.getCurrentTest(); const currentSection = this.getTestSection(this.currentSectionName); @@ -424,6 +475,15 @@ module.exports = class Results { } } + collectTestSectionOutput() { + const currentSection = this.getTestSection(this.currentSectionName); + if (!currentSection) { + return; + } + + currentSection.httpOutput = Logger.collectTestSectionOutput(); + } + setTotalElapsedTime() { this.timeMs = this.time; this.time = (this.time/1000).toPrecision(4); diff --git a/lib/runner/cli/cli.js b/lib/runner/cli/cli.js index cbe454eaba..52b18a19e0 100644 --- a/lib/runner/cli/cli.js +++ b/lib/runner/cli/cli.js @@ -9,8 +9,8 @@ const Utils = require('../../utils'); const Runner = require('../runner.js'); const ProcessListener = require('../process-listener.js'); const analyticsCollector = require('../../utils/analytics.js'); +const {RealIosDeviceIdError, iosRealDeviceUDID, isRealIos, isMobile, killSimulator, isAndroid} = require('../../utils/mobile.js'); const {Logger, singleSourceFile, isSafari, isLocalhost} = Utils; -const {RealIosDeviceIdError, iosRealDeviceUDID, isRealIos, isMobile, killSimulator} = require('../../utils/mobile.js'); class CliRunner { static get CONFIG_FILE_JS() { @@ -115,6 +115,7 @@ class CliRunner { initTestSettings(userSettings = {}, baseSettings = null, argv = null, testEnv = '', asyncLoading) { this.test_settings = Settings.parse(userSettings, baseSettings, argv, testEnv); + this.setMobileOptions(argv); this.setLoggingOptions(); this.setupGlobalHooks(); @@ -127,7 +128,6 @@ class CliRunner { } this.globalsSetup(argv); - this.setMobileOptions(argv); return this; } @@ -148,16 +148,22 @@ class CliRunner { } setMobileOptions(argv) { - const {desiredCapabilities} = this.test_settings; + const {desiredCapabilities, selenium = {}} = this.test_settings; - if (!isRealIos(desiredCapabilities)) { - return; + if (isRealIos(desiredCapabilities) && !selenium.use_appium) { + if (argv.deviceId) { + this.test_settings.desiredCapabilities['safari:deviceUDID'] = iosRealDeviceUDID(argv.deviceId); + } else if (!desiredCapabilities['safari:deviceUDID']) { + throw new RealIosDeviceIdError(); + } } - if (argv.deviceId) { - this.test_settings.desiredCapabilities['safari:deviceUDID'] = iosRealDeviceUDID(argv.deviceId); - } else if (!desiredCapabilities['safari:deviceUDID']) { - throw new RealIosDeviceIdError(); + if (isAndroid(desiredCapabilities) && argv.deviceId && !selenium.use_appium) { + if (desiredCapabilities['goog:chromeOptions']) { + this.test_settings.desiredCapabilities['goog:chromeOptions'].androidDeviceSerial = argv.deviceId; + } else if (desiredCapabilities['moz:firefoxOptions']) { + this.test_settings.desiredCapabilities['moz:firefoxOptions'].androidDeviceSerial = argv.deviceId; + } } } @@ -386,6 +392,11 @@ class CliRunner { isTestWorkersEnabled() { const testWorkers = this.test_settings.testWorkersEnabled && !singleSourceFile(this.argv); if (!testWorkers) { + + if (this.argv.debug) { + Logger.info('Disabling parallelism while running in debug mode'); + } + return false; } diff --git a/lib/runner/concurrency/worker-process.js b/lib/runner/concurrency/worker-process.js index a890a74386..bb6bc9e148 100644 --- a/lib/runner/concurrency/worker-process.js +++ b/lib/runner/concurrency/worker-process.js @@ -30,6 +30,7 @@ class WorkerPool extends EventEmitter { maxThreads: maxWorkerCount, argv: args, env: { + ...process.env, __NIGHTWATCH_PARALLEL_MODE: '1' } }); diff --git a/lib/runner/process-listener.js b/lib/runner/process-listener.js index 2bcf4166b8..07c0fcb676 100644 --- a/lib/runner/process-listener.js +++ b/lib/runner/process-listener.js @@ -80,6 +80,9 @@ module.exports = class { } uncaught(err, {type = 'uncaughtException'} = {}) { + Logger.setOutputEnabled(true); // force log for uncaught exception + Logger.enable(); + Logger.error(`${type}: ${err.message}\n${err.stack}`); analyticsCollector.exception(err); diff --git a/lib/settings/settings.js b/lib/settings/settings.js index e7828e7036..cbaaef6ea4 100644 --- a/lib/settings/settings.js +++ b/lib/settings/settings.js @@ -102,8 +102,21 @@ class Settings { get testWorkersEnabled() { const {test_workers} = this.settings; + const {serial, debug, parallel} = this.argv; - return this.argv.serial ? false : (this.argv.parallel || test_workers === true || (test_workers && test_workers.enabled && test_workers.workers !== 1)); + if (serial || debug) { + return false; + } + + if (parallel || test_workers === true) { + return true; + } + + if (test_workers && test_workers.enabled && (test_workers.workers === 'auto' || test_workers.workers > 1)) { + return true; + } + + return false; } /** @@ -304,6 +317,10 @@ class Settings { this.settings.parallel_mode = true; } + if (isObject(this.settings.test_workers)) { + this.settings.test_workers.workers = this.settings.test_workers.workers || 'auto'; + } + if (this.argv.parallel === true && !this.settings.test_workers) { this.settings.test_workers = true; } else if (isNumber(this.argv.parallel)) { diff --git a/lib/testsuite/index.js b/lib/testsuite/index.js index 89eb041678..4a6702634c 100644 --- a/lib/testsuite/index.js +++ b/lib/testsuite/index.js @@ -229,7 +229,8 @@ class TestSuite { reportPrefix: '', reportFileName: this.argv['report-filename'], groupName, - isMobile: this.client.api.isMobile() + isMobile: this.client.api.isMobile(), + tags: this.context.getTags() } }); } @@ -473,7 +474,11 @@ class TestSuite { await this.globalsInstance.runPluginHook(hookName, [this.settings]); } - return this.globalHooks[hookName].run(this.client); + const result = await this.globalHooks[hookName].run(this.client); + + this.onTestSectionFinished(); + + return result; }); } @@ -538,8 +543,8 @@ class TestSuite { return this.startTestSuite() .then(() => this.runHook('before')) .then(result => { - this.reporter.setTestStatus(); - + this.onTestSectionFinished(); + if (result instanceof Error) { Logger.error(result); } @@ -577,6 +582,7 @@ class TestSuite { if ((possibleError instanceof Error) && this.failFastMode) { throw possibleError; } + this.onTestSectionFinished(); return result; }); @@ -588,6 +594,12 @@ class TestSuite { .then((errorOrFailures) => this.onTestSuiteFinished(errorOrFailures)); } + onTestSectionFinished() { + this.reporter.setTestStatus(); + this.reporter.setTestSectionElapsedTime(); + this.reporter.collectTestSectionOutput(); + } + onTestSuiteFinished(errorOrFailures = false) { this.__snapShot = undefined; @@ -811,7 +823,7 @@ class TestSuite { testCaseFinished() { this.reporter.setElapsedTime(); - this.reporter.setTestStatus(); + this.onTestSectionFinished(); if (!this.testcase) { return Promise.resolve(); @@ -828,6 +840,7 @@ class TestSuite { let currentTestName = this.testcase.testName; this.suiteRetries.incrementTestRetriesCount(currentTestName); this.reporter.resetCurrentTestPassedCount(); + this.reporter.testResults.retryTest = true; this.commandQueue.clearScheduled(); return this.runCurrentTest(currentTestName); diff --git a/lib/transport/errors/index.js b/lib/transport/errors/index.js index 5c539ee2ae..903084358d 100644 --- a/lib/transport/errors/index.js +++ b/lib/transport/errors/index.js @@ -133,6 +133,11 @@ const Errors = { } }; +const IosSessionErrors = { + SessionNotCreatedError: ErrorCode.SESSION_NOT_CREATED_EXCEPTION, + UnsupportedOperationError: ErrorCode.UNSUPPORTED_OPERATION +}; + const SeleniumNightwatchErrorCodeMap = { NoSuchElementError: ErrorCode.NO_SUCH_ELEMENT }; @@ -176,5 +181,6 @@ module.exports = { }, StatusCode: ErrorCode, - Response: Errors + Response: Errors, + IosSessionErrors: IosSessionErrors }; diff --git a/lib/transport/selenium-webdriver/index.js b/lib/transport/selenium-webdriver/index.js index 4a8824c122..71231c3249 100644 --- a/lib/transport/selenium-webdriver/index.js +++ b/lib/transport/selenium-webdriver/index.js @@ -3,14 +3,15 @@ const {Builder, Browser, error} = require('selenium-webdriver'); const Actions = require('./actions.js'); const SeleniumCapabilities = require('./options.js'); -const {Logger, isObject, IosSessionNotCreatedError, AndroidConnectionError} = require('../../utils'); +const {Logger, isObject} = require('../../utils'); +const {IosSessionNotCreatedError, AndroidConnectionError} = require('../../utils/mobile'); const httpClient = require('./httpclient.js'); const Session = require('./session.js'); const BaseTransport = require('../'); const CDP = require('./cdp.js'); const {colors} = Logger; const {isErrorResponse, checkLegacyResponse, throwDecodedError, WebDriverError} = error; - +const {IosSessionErrors} = require('../errors'); let _driverService = null; let _driver = null; @@ -436,7 +437,7 @@ class Transport extends BaseTransport { return new AndroidConnectionError(err); } - if (err.name === 'SessionNotCreatedError' && this.api.isSafari() && this.api.isIOS()) { + if (IosSessionErrors[err.name] && this.api.isSafari() && this.api.isIOS()) { return new IosSessionNotCreatedError(err, this.desiredCapabilities); } } diff --git a/lib/transport/selenium-webdriver/method-mappings.js b/lib/transport/selenium-webdriver/method-mappings.js index f5a1571255..736bfc7d36 100644 --- a/lib/transport/selenium-webdriver/method-mappings.js +++ b/lib/transport/selenium-webdriver/method-mappings.js @@ -1,4 +1,4 @@ -const {WebElement, WebDriver, Origin, By} = require('selenium-webdriver'); +const {WebElement, WebDriver, Origin, By, until, Condition} = require('selenium-webdriver'); const {Locator} = require('../../element'); const NightwatchLocator = require('../../element/locator-factory.js'); const {isString} = require('../../utils'); @@ -841,8 +841,8 @@ module.exports = class MethodMappings { /** * @param {string|WebElement|null} origin - * @param {number} xOffset - * @param {number} yOffset + * @param {number} x + * @param {number} y * @param {object} [options] * @param {number} [duration] */ @@ -1036,7 +1036,7 @@ module.exports = class MethodMappings { /////////////////////////////////////////////////////////////////////////// async wait(conditionFn, timeMs, message, retryInterval) { const driver = new WebDriver(Promise.resolve()); - await driver.wait(conditionFn(), timeMs, message, retryInterval); + await driver.wait(conditionFn instanceof Condition ? conditionFn : conditionFn(), timeMs, message, retryInterval); return { value: null @@ -1052,6 +1052,10 @@ module.exports = class MethodMappings { }; }, + waitUntilElementsLocated({condition, timeout, retryInterval}) { + return this.driver.wait(until.elementsLocated(condition), timeout, null, retryInterval); + }, + /////////////////////////////////////////////////////////////////////////// // BiDi apis /////////////////////////////////////////////////////////////////////////// diff --git a/lib/transport/selenium-webdriver/service-builders/chrome.js b/lib/transport/selenium-webdriver/service-builders/chrome.js index 95cc516630..0bbf6da683 100644 --- a/lib/transport/selenium-webdriver/service-builders/chrome.js +++ b/lib/transport/selenium-webdriver/service-builders/chrome.js @@ -46,6 +46,11 @@ class ChromeServiceBuilder extends BaseService { return super.createService(); } + + + get requiresDriverBinary() { + return false; + } } module.exports = ChromeServiceBuilder; diff --git a/lib/transport/selenium-webdriver/service-builders/edge.js b/lib/transport/selenium-webdriver/service-builders/edge.js index 0e207f0dae..1f79773eb7 100644 --- a/lib/transport/selenium-webdriver/service-builders/edge.js +++ b/lib/transport/selenium-webdriver/service-builders/edge.js @@ -10,6 +10,10 @@ class EdgeServiceBuilder extends BaseService { return 9514; } + get requiresDriverBinary() { + return false; + } + get outputFile() { return this._outputFile + '_msedgedriver.log'; } diff --git a/lib/transport/selenium-webdriver/service-builders/firefox.js b/lib/transport/selenium-webdriver/service-builders/firefox.js index 0a2338b22f..dfdd4bb466 100644 --- a/lib/transport/selenium-webdriver/service-builders/firefox.js +++ b/lib/transport/selenium-webdriver/service-builders/firefox.js @@ -42,6 +42,10 @@ class FirefoxServiceBuilder extends BaseService { return super.createService(); } + + get requiresDriverBinary() { + return false; + } } module.exports = FirefoxServiceBuilder; diff --git a/lib/utils/index.js b/lib/utils/index.js index 82791dd7b8..bc1a9b5f14 100644 --- a/lib/utils/index.js +++ b/lib/utils/index.js @@ -1,6 +1,5 @@ const path = require('path'); const fs = require('fs'); -const mkpath = require('mkpath'); const glob = require('glob'); const lodashMerge = require('lodash.merge'); const {By, Capabilities} = require('selenium-webdriver'); @@ -261,7 +260,8 @@ class Utils { } } } - + parentFolder = this.isFileNameValid(parentFolder) ? '' : parentFolder; + return path.join(parentFolder, diffInFolder, moduleName); } @@ -513,7 +513,7 @@ class Utils { static createFolder(dirPath) { return new Promise((resolve, reject) => { - mkpath(dirPath, function(err) { + Utils.mkpath(dirPath, function(err) { if (err) { return reject(err); } @@ -532,7 +532,7 @@ class Utils { const dir = path.resolve(filePath, '..'); return new Promise((resolve, reject) => { - mkpath(dir, function(err) { + Utils.mkpath(dir, function(err) { if (err) { reject(err); } else { @@ -661,6 +661,48 @@ class Utils { return objects; } + + /** + * make all directories in a path, like mkdir -p + */ + static mkpath(dirpath, mode, callback) { + dirpath = path.resolve(dirpath); + + if (typeof mode === 'function' || typeof mode === 'undefined') { + callback = mode; + mode = parseInt('0777', 8); + + if (!callback) { + callback = function() {}; + } + } + + fs.stat(dirpath, function (err, stats) { + if (err) { + if (err.code === 'ENOENT') { + Utils.mkpath(path.dirname(dirpath), mode, function (err) { + if (err) { + callback(err); + } else { + fs.mkdir(dirpath, mode, function (err) { + if (!err || err.code === 'EEXIST') { + callback(null); + } else { + callback(err); + } + }); + } + }); + } else { + callback(err); + } + } else if (stats.isDirectory()) { + callback(null); + } else { + callback(new Error(dirpath + ' exists and is not a directory')); + } + }); + } } diff --git a/lib/utils/logger/index.js b/lib/utils/logger/index.js index 100c86a227..1941a6247d 100644 --- a/lib/utils/logger/index.js +++ b/lib/utils/logger/index.js @@ -168,6 +168,7 @@ function logRequest(message, params) { const instance = Logger.getInstance(); instance.output.push([timeIso, lodashEscape(message), lodashEscape(inspectObject(params))]); + instance.testSectionOutput.push([timeIso, lodashEscape(message), lodashEscape(inspectObject(params))]); } function logError(severity, errOrMessage, args) { @@ -183,6 +184,7 @@ class Logger { constructor() { this.colors = colors; this.output = []; + this.testSectionOutput = []; } logMessage(...args) { @@ -467,3 +469,16 @@ module.exports.collectOutput = function() { return output; }; + +module.exports.collectTestSectionOutput = function() { + const instance = Logger.getInstance(); + + if (!instance) { + return []; + } + + const {testSectionOutput} = instance; + instance.testSectionOutput = []; + + return testSectionOutput; +}; diff --git a/lib/utils/mobile.js b/lib/utils/mobile.js index 9a8bca043e..9d74c08cd4 100644 --- a/lib/utils/mobile.js +++ b/lib/utils/mobile.js @@ -294,6 +294,19 @@ class IosSessionNotCreatedError extends Error { `For more help, run: ${Logger.colors.cyan('npx run @nightwatch/mobile-helper ios')}\n` ]; } + } else if (this.desiredCapabilities['safari:deviceUDID']) { + help = [ + `Verify the UDID of the device set in Nightwatch configuration (look for ${Logger.colors.cyan('safari:deviceUDID')} capability) or pass the correct UDID using ${Logger.colors.cyan('--deviceId')} flag in the test command.`, + 'Re-run the test command', + `If it doesn't work, try running: ${Logger.colors.cyan('npx run @nightwatch/mobile-helper ios')}` + ]; + + if (isRealIos(this.desiredCapabilities)) { + help = [ + `Check device connection by running command: ${Logger.colors.cyan('system_profiler SPUSBDataType | sed -n \'/iPhone/,/Serial/p\' | grep \'Serial Number:\' | awk -F \': \' \'{print $2}')}`, + ...help + ]; + } } return help; diff --git a/lib/utils/screenshots.js b/lib/utils/screenshots.js index 2acfb9cb56..d3a342d6e3 100644 --- a/lib/utils/screenshots.js +++ b/lib/utils/screenshots.js @@ -1,6 +1,5 @@ const path = require('path'); const fs = require('fs'); -const mkpath = require('mkpath'); const Defaults = require('../settings/defaults.js'); class Screenshots { diff --git a/package-lock.json b/package-lock.json index 2a7d3fde31..a07d9c17ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@nightwatch/chai": "5.0.2", - "@nightwatch/html-reporter-template": "0.2.0", + "@nightwatch/html-reporter-template": "0.2.1", "@nightwatch/nightwatch-inspector": "^1.0.1", "ansi-to-html": "0.7.2", "aria-query": "^5.1.3", @@ -33,13 +33,12 @@ "lodash.pick": "4.4.0", "minimatch": "3.1.2", "minimist": "1.2.6", - "mkpath": "1.0.0", "mocha": "9.2.2", "nightwatch-axe-verbose": "^2.1.0", "open": "8.4.0", "ora": "5.4.1", "piscina": "^3.2.0", - "selenium-webdriver": "4.8.0", + "selenium-webdriver": "4.9.2", "semver": "7.3.5", "stacktrace-parser": "0.1.10", "strip-ansi": "6.0.1", @@ -53,7 +52,6 @@ "@cucumber/cucumber": "^8.2.1", "@types/nightwatch": "^2.3.12", "@types/node": "^18.11.7", - "chromedriver": "^111.0.0", "coveralls": "^3.1.1", "eslint": "^8.9.0", "is-ci": "^3.0.1", @@ -78,9 +76,7 @@ "node": ">= 14.0.0" }, "peerDependencies": { - "@cucumber/cucumber": "*", - "chromedriver": "*", - "geckodriver": "*" + "@cucumber/cucumber": "*" }, "peerDependenciesMeta": { "@cucumber/cucumber": { @@ -88,9 +84,6 @@ }, "chromedriver": { "optional": true - }, - "geckodriver": { - "optional": true } } }, @@ -952,9 +945,9 @@ } }, "node_modules/@nightwatch/html-reporter-template": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nightwatch/html-reporter-template/-/html-reporter-template-0.2.0.tgz", - "integrity": "sha512-AvHrlX9TE/ta6KpC2Gwrkw3e4wE2W7chBdaVOKsARF7yMLKFKJYAwLS1VYIxRgx9auIeFvau6AJvpyPmGUSw3A==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nightwatch/html-reporter-template/-/html-reporter-template-0.2.1.tgz", + "integrity": "sha512-GEBeGoXVmTYPtNC4Yq34vfgxf6mlFyEagxpsfH18Qe5BvctF2rprX+wI5dKBm9p5IqHo6ZOcXHCufOeP3cjuOw==" }, "node_modules/@nightwatch/nightwatch-inspector": { "version": "1.0.1", @@ -986,32 +979,6 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "optional": true, - "peer": true, - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@teppeis/multimaps": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-2.0.0.tgz", @@ -1021,12 +988,6 @@ "node": ">=10.17" } }, - "node_modules/@testim/chrome-version": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.3.tgz", - "integrity": "sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A==", - "dev": true - }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -1059,42 +1020,12 @@ "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "optional": true, - "peer": true, - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "node_modules/@types/chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "optional": true, - "peer": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -1116,17 +1047,7 @@ "version": "18.11.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", - "devOptional": true - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*" - } + "dev": true }, "node_modules/@types/selenium-webdriver": { "version": "4.1.9", @@ -1152,16 +1073,6 @@ "@types/node": "*" } }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -1248,16 +1159,6 @@ "node": ">=0.4.0" } }, - "node_modules/adm-zip": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz", - "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -1594,31 +1495,6 @@ "node": ">=4" } }, - "node_modules/axios": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", - "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1670,13 +1546,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "optional": true, - "peer": true - }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -1814,35 +1683,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "optional": true, - "peer": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/caching-transform": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -2005,38 +1845,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chromedriver": { - "version": "111.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-111.0.0.tgz", - "integrity": "sha512-XavNYNBBfKIrT8Oi/ywJ0DoOOU+jHF5bQWTkqStFsAXvfCV9VzYN3J+TGAvZdrpXeoixqPRGUxQ2yZhD2iowdQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@testim/chrome-version": "^1.1.3", - "axios": "^1.2.1", - "compare-versions": "^5.0.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" - }, - "bin": { - "chromedriver": "bin/chromedriver" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/ci-info": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", @@ -2139,19 +1947,6 @@ "node": ">=0.8" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "optional": true, - "peer": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2193,12 +1988,6 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/compare-versions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz", - "integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==", - "dev": true - }, "node_modules/compress-commons": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", @@ -2461,35 +2250,6 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "optional": true, - "peer": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/deep-eql": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.0.1.tgz", @@ -2573,16 +2333,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -3181,26 +2931,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, "node_modules/extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", @@ -3242,15 +2972,6 @@ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -3469,19 +3190,6 @@ "node": ">=12" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3525,27 +3233,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/geckodriver": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-3.2.0.tgz", - "integrity": "sha512-p+qR2RKlI/TQoCEYrSuTaYCLqsJNni96WmEukTyXmOmLn+3FLdgPAEwMZ0sG2Cwi9hozUzGAWyT6zLuhF6cpiQ==", - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "adm-zip": "0.5.9", - "bluebird": "3.7.2", - "got": "11.8.5", - "https-proxy-agent": "5.0.1", - "tar": "6.1.11" - }, - "bin": { - "geckodriver": "bin/geckodriver" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3593,21 +3280,6 @@ "node": ">=8.0.0" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "devOptional": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -3673,32 +3345,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "optional": true, - "peer": true, - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, "node_modules/graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -3863,13 +3509,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "optional": true, - "peer": true - }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -3898,20 +3537,6 @@ "npm": ">=1.3.7" } }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "optional": true, - "peer": true, - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -4053,15 +3678,6 @@ "node": ">= 0.4" } }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -4395,12 +4011,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -4441,20 +4051,6 @@ "node": ">=8" } }, - "node_modules/is2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", - "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - }, - "engines": { - "node": ">=v0.10.0" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -4721,13 +4317,6 @@ "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "optional": true, - "peer": true - }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -4846,16 +4435,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "optional": true, - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, "node_modules/knuth-shuffle-seeded": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", @@ -5175,16 +4754,6 @@ "tslib": "^2.0.3" } }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5270,16 +4839,6 @@ "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5305,33 +4864,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -5344,11 +4876,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mkpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", - "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==" - }, "node_modules/mocha": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", @@ -5926,19 +5453,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -6261,16 +5775,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -6429,12 +5933,6 @@ "node": "*" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -6581,27 +6079,11 @@ "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", "dev": true }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "devOptional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -6624,19 +6106,6 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -6931,13 +6400,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "optional": true, - "peer": true - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -6959,19 +6421,6 @@ "node": ">=8" } }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "optional": true, - "peer": true, - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -7044,13 +6493,13 @@ "dev": true }, "node_modules/selenium-webdriver": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.8.0.tgz", - "integrity": "sha512-s/HL8WNwy1ggHR244+tAhjhyKMJnZLt1HKJ6Gn7nQgVjB/ybDF+46Uui0qI2J7AjPNJzlUmTncdC/jg/kKkn0A==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.9.2.tgz", + "integrity": "sha512-0gDswAgVn6qbCYckZetQQvQK9tWW1r7LaumhiqY1/Wl/7JEWG0JANsTbZKnmGc3+cUU76zAi5/p0P8LUweXlig==", "dependencies": { - "jszip": "^3.10.0", + "jszip": "^3.10.1", "tmp": "^0.2.1", - "ws": ">=8.11.0" + "ws": ">=8.13.0" }, "engines": { "node": ">= 14.20.0" @@ -7632,26 +7081,8 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "node_modules/tar-stream": { "version": "2.2.0", @@ -7668,19 +7099,6 @@ "node": ">=6" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/tcomb": { "version": "3.2.29", "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz", @@ -7696,33 +7114,6 @@ "tcomb": "^3.0.0" } }, - "node_modules/tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "dev": true, - "dependencies": { - "debug": "4.3.1", - "is2": "^2.0.6" - } - }, - "node_modules/tcp-port-used/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -8348,15 +7739,15 @@ } }, "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -8469,16 +7860,6 @@ "node": ">=10" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -9218,9 +8599,9 @@ } }, "@nightwatch/html-reporter-template": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@nightwatch/html-reporter-template/-/html-reporter-template-0.2.0.tgz", - "integrity": "sha512-AvHrlX9TE/ta6KpC2Gwrkw3e4wE2W7chBdaVOKsARF7yMLKFKJYAwLS1VYIxRgx9auIeFvau6AJvpyPmGUSw3A==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@nightwatch/html-reporter-template/-/html-reporter-template-0.2.1.tgz", + "integrity": "sha512-GEBeGoXVmTYPtNC4Yq34vfgxf6mlFyEagxpsfH18Qe5BvctF2rprX+wI5dKBm9p5IqHo6ZOcXHCufOeP3cjuOw==" }, "@nightwatch/nightwatch-inspector": { "version": "1.0.1", @@ -9251,35 +8632,12 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "optional": true, - "peer": true - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "optional": true, - "peer": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, "@teppeis/multimaps": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@teppeis/multimaps/-/multimaps-2.0.0.tgz", "integrity": "sha512-TL1adzq1HdxUf9WYduLcQ/DNGYiz71U31QRgbnr0Ef1cPyOUOsBojxHVWpFeOSUucB6Lrs0LxFRA14ntgtkc9w==", "dev": true }, - "@testim/chrome-version": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.3.tgz", - "integrity": "sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A==", - "dev": true - }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -9309,42 +8667,12 @@ "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, - "@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "optional": true, - "peer": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, "@types/chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "optional": true, - "peer": true - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "optional": true, - "peer": true, - "requires": { - "@types/node": "*" - } - }, "@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -9366,17 +8694,7 @@ "version": "18.11.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", - "devOptional": true - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "optional": true, - "peer": true, - "requires": { - "@types/node": "*" - } + "dev": true }, "@types/selenium-webdriver": { "version": "4.1.9", @@ -9402,16 +8720,6 @@ "@types/node": "*" } }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -9477,13 +8785,6 @@ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, - "adm-zip": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz", - "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==", - "optional": true, - "peer": true - }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -9748,30 +9049,6 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.1.tgz", "integrity": "sha512-lCZN5XRuOnpG4bpMq8v0khrWtUOn+i8lZSb6wHZH56ZfbIEv6XwJV84AAueh9/zi7qPVJ/E4yz6fmsiyOmXR4w==" }, - "axios": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", - "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -9806,13 +9083,6 @@ "readable-stream": "^3.4.0" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "optional": true, - "peer": true - }, "boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -9898,29 +9168,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "optional": true, - "peer": true - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "optional": true, - "peer": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - } - }, "caching-transform": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -10029,28 +9276,6 @@ "readdirp": "~3.6.0" } }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true - }, - "chromedriver": { - "version": "111.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-111.0.0.tgz", - "integrity": "sha512-XavNYNBBfKIrT8Oi/ywJ0DoOOU+jHF5bQWTkqStFsAXvfCV9VzYN3J+TGAvZdrpXeoixqPRGUxQ2yZhD2iowdQ==", - "dev": true, - "requires": { - "@testim/chrome-version": "^1.1.3", - "axios": "^1.2.1", - "compare-versions": "^5.0.1", - "extract-zip": "^2.0.1", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^1.1.0", - "tcp-port-used": "^1.0.1" - } - }, "ci-info": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", @@ -10121,16 +9346,6 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, - "clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "optional": true, - "peer": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -10166,12 +9381,6 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "compare-versions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz", - "integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==", - "dev": true - }, "compress-commons": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", @@ -10381,25 +9590,6 @@ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "optional": true, - "peer": true, - "requires": { - "mimic-response": "^3.1.0" - }, - "dependencies": { - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "optional": true, - "peer": true - } - } - }, "deep-eql": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.0.1.tgz", @@ -10467,13 +9657,6 @@ "clone": "^1.0.2" } }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "optional": true, - "peer": true - }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -10932,18 +10115,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, "extsprintf": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", @@ -10984,15 +10155,6 @@ } } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -11140,16 +10302,6 @@ "universalify": "^2.0.0" } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -11183,20 +10335,6 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" }, - "geckodriver": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-3.2.0.tgz", - "integrity": "sha512-p+qR2RKlI/TQoCEYrSuTaYCLqsJNni96WmEukTyXmOmLn+3FLdgPAEwMZ0sG2Cwi9hozUzGAWyT6zLuhF6cpiQ==", - "optional": true, - "peer": true, - "requires": { - "adm-zip": "0.5.9", - "bluebird": "3.7.2", - "got": "11.8.5", - "https-proxy-agent": "5.0.1", - "tar": "6.1.11" - } - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -11229,15 +10367,6 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "devOptional": true, - "requires": { - "pump": "^3.0.0" - } - }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -11285,26 +10414,6 @@ "get-intrinsic": "^1.1.3" } }, - "got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", - "optional": true, - "peer": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, "graceful-fs": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", @@ -11422,13 +10531,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "optional": true, - "peer": true - }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -11450,17 +10552,6 @@ "sshpk": "^1.7.0" } }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "optional": true, - "peer": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -11560,12 +10651,6 @@ "side-channel": "^1.0.4" } }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true - }, "is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -11776,12 +10861,6 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, "is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -11810,17 +10889,6 @@ "is-docker": "^2.0.0" } }, - "is2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", - "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -12032,13 +11100,6 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "optional": true, - "peer": true - }, "json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -12144,16 +11205,6 @@ } } }, - "keyv": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", - "optional": true, - "peer": true, - "requires": { - "json-buffer": "3.0.1" - } - }, "knuth-shuffle-seeded": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/knuth-shuffle-seeded/-/knuth-shuffle-seeded-1.0.6.tgz", @@ -12448,13 +11499,6 @@ "tslib": "^2.0.3" } }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "optional": true, - "peer": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -12521,13 +11565,6 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "optional": true, - "peer": true - }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -12552,27 +11589,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -12582,11 +11598,6 @@ "minimist": "^1.2.6" } }, - "mkpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", - "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==" - }, "mocha": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", @@ -13055,13 +12066,6 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "optional": true, - "peer": true - }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -13308,13 +12312,6 @@ "wcwidth": "^1.0.1" } }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "optional": true, - "peer": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -13430,12 +12427,6 @@ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -13552,27 +12543,11 @@ "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==", "dev": true }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "devOptional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -13589,13 +12564,6 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "optional": true, - "peer": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13831,13 +12799,6 @@ "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "optional": true, - "peer": true - }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -13853,16 +12814,6 @@ "resolve-from": "^5.0.0" } }, - "responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "optional": true, - "peer": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -13923,13 +12874,13 @@ "dev": true }, "selenium-webdriver": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.8.0.tgz", - "integrity": "sha512-s/HL8WNwy1ggHR244+tAhjhyKMJnZLt1HKJ6Gn7nQgVjB/ybDF+46Uui0qI2J7AjPNJzlUmTncdC/jg/kKkn0A==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.9.2.tgz", + "integrity": "sha512-0gDswAgVn6qbCYckZetQQvQK9tWW1r7LaumhiqY1/Wl/7JEWG0JANsTbZKnmGc3+cUU76zAi5/p0P8LUweXlig==", "requires": { - "jszip": "^3.10.0", + "jszip": "^3.10.1", "tmp": "^0.2.1", - "ws": ">=8.11.0" + "ws": ">=8.13.0" } }, "semver": { @@ -14346,30 +13297,6 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "peer": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true - } - } - }, "tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", @@ -14397,27 +13324,6 @@ "tcomb": "^3.0.0" } }, - "tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "dev": true, - "requires": { - "debug": "4.3.1", - "is2": "^2.0.6" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -14887,9 +13793,9 @@ } }, "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "requires": {} }, "xml": { @@ -14968,16 +13874,6 @@ } } }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index 8536b2fa64..0c1df35a76 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@nightwatch/chai": "5.0.2", - "@nightwatch/html-reporter-template": "0.2.0", + "@nightwatch/html-reporter-template": "0.2.1", "@nightwatch/nightwatch-inspector": "^1.0.1", "ansi-to-html": "0.7.2", "aria-query": "^5.1.3", @@ -38,13 +38,12 @@ "lodash.pick": "4.4.0", "minimatch": "3.1.2", "minimist": "1.2.6", - "mkpath": "1.0.0", "mocha": "9.2.2", "nightwatch-axe-verbose": "^2.1.0", "open": "8.4.0", "ora": "5.4.1", "piscina": "^3.2.0", - "selenium-webdriver": "4.8.0", + "selenium-webdriver": "4.9.2", "semver": "7.3.5", "stacktrace-parser": "0.1.10", "strip-ansi": "6.0.1", @@ -55,7 +54,6 @@ "@cucumber/cucumber": "^8.2.1", "@types/nightwatch": "^2.3.12", "@types/node": "^18.11.7", - "chromedriver": "^111.0.0", "coveralls": "^3.1.1", "eslint": "^8.9.0", "is-ci": "^3.0.1", @@ -77,9 +75,7 @@ "wait-on": "^7.0.1" }, "peerDependencies": { - "@cucumber/cucumber": "*", - "chromedriver": "*", - "geckodriver": "*" + "@cucumber/cucumber": "*" }, "peerDependenciesMeta": { "chromedriver": { diff --git a/test/apidemos/web-elements/elementApiWithPageObjects.js b/test/apidemos/web-elements/elementApiWithPageObjects.js new file mode 100644 index 0000000000..42b3e08960 --- /dev/null +++ b/test/apidemos/web-elements/elementApiWithPageObjects.js @@ -0,0 +1,54 @@ +const assert = require('assert'); +const {WebElement} = require('selenium-webdriver'); + +describe('demo tests with new element api in page objects', function () { + after(browser => browser.end()); + + const pageObject = this.page.simplePageObj(); + + it('element api on page objects', async function() { + const elementResult = await pageObject.element('@loginAsString'); + assert.strictEqual(elementResult instanceof WebElement, true); + assert.strictEqual(await elementResult.getId(), '5cc459b8-36a8-3042-8b4a-258883ea642b'); + + const elementFindResult = await pageObject.element.find('@loginIndexed'); + assert.strictEqual(elementFindResult instanceof WebElement, true); + assert.strictEqual(await elementFindResult.getId(), '3783b042-7001-0740-a2c0-afdaac732e9f'); + + const elementFindAllResult = await pageObject.element.findAll('@loginXpath'); + assert.strictEqual(elementFindAllResult.length, 2); + assert.strictEqual(elementFindAllResult[0] instanceof WebElement, true); + assert.strictEqual(await elementFindAllResult[1].getId(), '3783b042-7001-0740-a2c0-afdaac732e9f'); + + const findByTextResult = await pageObject.element.findByText('Web Login'); + assert.strictEqual(findByTextResult instanceof WebElement, true); + assert.strictEqual(await findByTextResult.getId(), '5cc459b8-36a8-3042-8b4a-258883ea642b'); + }); + + it('element api on sections', async function() { + const signupSection = pageObject.section.signUp; + + const elementResult = await signupSection.element('@help'); + assert.strictEqual(elementResult instanceof WebElement, true); + assert.strictEqual(await elementResult.getId(), '1'); + + const elementFindResult = await signupSection.element.find('@help'); + assert.strictEqual(elementFindResult instanceof WebElement, true); + assert.strictEqual(await elementFindResult.getId(), '1'); + + const findByTextResult = await signupSection.element.findByText('Help'); + assert.strictEqual(findByTextResult instanceof WebElement, true); + assert.strictEqual(await findByTextResult.getId(), '2'); + + const getStartedSection = signupSection.section.getStarted; + + const elementFindResult2 = await getStartedSection.element.find('#getStartedStart'); + assert.strictEqual(elementFindResult2 instanceof WebElement, true); + assert.strictEqual(await elementFindResult2.getId(), '4'); + + const elementFindAllResult = await getStartedSection.element.findAll('@start'); + assert.strictEqual(elementFindAllResult.length, 3); + assert.strictEqual(elementFindAllResult[0] instanceof WebElement, true); + assert.strictEqual(await elementFindAllResult[2].getId(), '6'); + }); +}); diff --git a/test/apidemos/web-elements/waitUntilFailureTest.js b/test/apidemos/web-elements/waitUntilFailureTest.js new file mode 100644 index 0000000000..93005c5fe0 --- /dev/null +++ b/test/apidemos/web-elements/waitUntilFailureTest.js @@ -0,0 +1,5 @@ +describe('demo of failure of waitUntil element commands', function() { + it('waitUntil element is visible and but not selected', function({element}) { + element.find('#weblogin').waitUntil('visible').waitUntil('not.selected'); + }); +}); \ No newline at end of file diff --git a/test/apidemos/web-elements/waitUntilTest.js b/test/apidemos/web-elements/waitUntilTest.js new file mode 100644 index 0000000000..c56d45200e --- /dev/null +++ b/test/apidemos/web-elements/waitUntilTest.js @@ -0,0 +1,14 @@ +describe('demo tests using waitUntil element APIs', function() { + it('wait until element is visible', function({element}) { + element('#weblogin').waitUntil('visible'); + }); + + it('wait until element is selected', function({element, state}) { + element('#weblogin').waitUntil('selected'); + }); + + it('wait until element is enabled', function({element}) { + element('#weblogin').waitUntil('enabled'); + }); +}); + diff --git a/test/extra/reportObject.js b/test/extra/reportObject.js index bbb73fc791..de6f2e94a0 100644 --- a/test/extra/reportObject.js +++ b/test/extra/reportObject.js @@ -1,2446 +1,15579 @@ module.exports = { - 'passed': 12, - 'failed': 2, - 'errors': 0, - 'skipped': 0, - 'tests': 0, - 'assertions': 14, - 'errmessages': [], - 'modules': { - 'ecosia': { - 'reportPrefix': 'FIREFOX_108.0.1__', - 'assertionsCount': 7, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' + passed: 40, + failed: 3, + errors: 0, + skipped: 2, + tests: 0, + assertions: 43, + errmessages: [ + ], + modules: { + selectElement: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 1, + lastError: null, + skipped: [ + ], + time: '1.082', + timeMs: 1082, + completed: { + demoTest: { + time: '1.082', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Forth option is selected (4ms)', + stackTrace: '', + fullMsg: 'Forth option is selected \u001b[0;90m(4ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + tests: 1, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + demoTest: { + time: '1.082', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Forth option is selected \u001b[0;90m(4ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Forth option is selected \u001b[0;90m(4ms)\u001b[0m', + failure: false + } + ], + tests: 1, + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1082, + startTimestamp: 'Thu, 06 Apr 2023 10:19:41 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:42 GMT' + } + }, + timeMs: 1082, + startTimestamp: 'Thu, 06 Apr 2023 10:19:41 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:42 GMT' + } }, - 'skipped': [], - 'time': '21.18', - 'timeMs': 21175, - 'completed': { - 'Demo test ecosia.org': { - 'time': '15.78', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 26 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 26 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \'Ecosia\' (3ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element is visible (14ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element is visible (8ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element <.layout__content> contains text \'Nightwatch.js\' (295ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'failure': false - }], - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 5, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '15.78', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 26 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 26 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 15779, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:54 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT' + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + demoTest: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'url', + args: [ + 'https://www.selenium.dev/selenium/web/formPage.html' + ], + startTime: 1680776381835, + endTime: 1680776382638, + elapsedTime: 803, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'element().getAttribute', + args: [ + 'tagName' + ], + startTime: 1680776382642, + endTime: 1680776382669, + elapsedTime: 27, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776382669, + endTime: 1680776382674, + elapsedTime: 5, + status: 'pass', + result: { + } + }, + { + name: 'perform', + args: [ + 'function () { [native code] }' + ], + startTime: 1680776382639, + endTime: 1680776382900, + elapsedTime: 261, + status: 'pass' + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776382901, + endTime: 1680776382905, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'assert.selected', + args: [ + '[object Object]', + 'Forth option is selected' + ], + startTime: 1680776382906, + endTime: 1680776382912, + elapsedTime: 6, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776382919, + endTime: 1680776384029, + elapsedTime: 1110, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 1, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/selectElement.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:40 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:42 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93822, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileHW3NPW', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: 'a1f5ad5e-07f5-4800-ba12-b7a271e609a9', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/selectElement_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:40.629Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:41.827Z', + ' Response 200 POST /session (1199ms)', + '{\n value: {\n sessionId: 'a1f5ad5e-07f5-4800-ba12-b7a271e609a9',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93822,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileHW3NPW',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:41.837Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url ', + '{ url: 'https://www.selenium.dev/selenium/web/formPage.html' }' + ], + [ + '2023-04-06T10:19:42.638Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url (801ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.643Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements ', + '{ using: 'css selector', value: 'select[name=selectomatic]' }' + ], + [ + '2023-04-06T10:19:42.660Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements (17ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ab344c02-89da-455d-a6d9-f3d066201c38'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:42.661Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync ', + '{\n script: 'return (function(){return (function(){var h=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=h;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (43188 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ab344c02-89da-455d-a6d9-f3d066201c38',\n ELEMENT: 'ab344c02-89da-455d-a6d9-f3d066201c38'\n },\n 'tagName'\n ]\n }' + ], + [ + '2023-04-06T10:19:42.668Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync (7ms)', + '{ value: 'SELECT' }' + ], + [ + '2023-04-06T10:19:42.670Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{\n using: 'xpath',\n value: './option[. = "Four"]|./option[normalize-space(text()) = "Four"]|./optgroup/option[. = "Four"]|./optgroup/option[normalize-space(text()) = "Four"]'\n }' + ], + [ + '2023-04-06T10:19:42.674Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': 'f5aa1430-b88f-46cf-9816-c48c2ef74bfd'\n }\n }' + ], + [ + '2023-04-06T10:19:42.675Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '''' + ], + [ + '2023-04-06T10:19:42.678Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: false }' + ], + [ + '2023-04-06T10:19:42.679Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled ', + '''' + ], + [ + '2023-04-06T10:19:42.687Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.688Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click ', + '{}' + ], + [ + '2023-04-06T10:19:42.900Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.901Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{ using: 'css selector', value: 'option[value=four]' }' + ], + [ + '2023-04-06T10:19:42.905Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': 'f5aa1430-b88f-46cf-9816-c48c2ef74bfd'\n }\n }' + ], + [ + '2023-04-06T10:19:42.909Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '''' + ], + [ + '2023-04-06T10:19:42.911Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.921Z', + ' Request DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 ', + '''' + ], + [ + '2023-04-06T10:19:44.026Z', + ' Response 200 DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 (1105ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:40.629Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:41.827Z', + ' Response 200 POST /session (1199ms)', + '{\n value: {\n sessionId: \'a1f5ad5e-07f5-4800-ba12-b7a271e609a9\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93822,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileHW3NPW\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:41.837Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url ', + '{ url: \'https://www.selenium.dev/selenium/web/formPage.html\' }' + ], + [ + '2023-04-06T10:19:42.638Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url (801ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.643Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements ', + '{ using: \'css selector\', value: \'select[name=selectomatic]\' }' + ], + [ + '2023-04-06T10:19:42.660Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements (17ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ab344c02-89da-455d-a6d9-f3d066201c38\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:42.661Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync ', + '{\n script: \'return (function(){return (function(){var h=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=h;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (43188 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ab344c02-89da-455d-a6d9-f3d066201c38\',\n ELEMENT: \'ab344c02-89da-455d-a6d9-f3d066201c38\'\n },\n \'tagName\'\n ]\n }' + ], + [ + '2023-04-06T10:19:42.668Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync (7ms)', + '{ value: \'SELECT\' }' + ], + [ + '2023-04-06T10:19:42.670Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{\n using: \'xpath\',\n value: \'./option[. = "Four"]|./option[normalize-space(text()) = "Four"]|./optgroup/option[. = "Four"]|./optgroup/option[normalize-space(text()) = "Four"]\'\n }' + ], + [ + '2023-04-06T10:19:42.674Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f5aa1430-b88f-46cf-9816-c48c2ef74bfd\'\n }\n }' + ], + [ + '2023-04-06T10:19:42.675Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '\'\'' + ], + [ + '2023-04-06T10:19:42.678Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: false }' + ], + [ + '2023-04-06T10:19:42.679Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled ', + '\'\'' + ], + [ + '2023-04-06T10:19:42.687Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.688Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click ', + '{}' + ], + [ + '2023-04-06T10:19:42.900Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.901Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{ using: \'css selector\', value: \'option[value=four]\' }' + ], + [ + '2023-04-06T10:19:42.905Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f5aa1430-b88f-46cf-9816-c48c2ef74bfd\'\n }\n }' + ], + [ + '2023-04-06T10:19:42.909Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '\'\'' + ], + [ + '2023-04-06T10:19:42.911Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.921Z', + ' Request DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 ', + '\'\'' + ], + [ + '2023-04-06T10:19:44.026Z', + ' Response 200 DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 (1105ms)', + '{ value: null }' + ] + ] + }, + chromeCDP_example: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 1, + lastError: { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)' + }, + skipped: [ + ], + time: '4.669', + timeMs: 4669, + completed: { + 'using CDP DOM Snapshot': { + time: '4.669', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected "documents,strings" but got: "abortOnFailure" (4ms)', + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + fullMsg: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + failure: 'Expected "documents,strings" but got: "abortOnFailure"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png' + ] + } + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + tests: 1, + status: 'fail', + steps: [ + ], + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + testcases: { + 'using CDP DOM Snapshot': { + time: '4.669', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + fullMsg: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + failure: 'Expected "documents,strings" but got: "abortOnFailure"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png' + ] + } + ], + tests: 1, + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + status: 'fail', + steps: [ + ], + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + lastError: { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)' + }, + timeMs: 4669, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:32 GMT' } }, - 'timeMs': 15779, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:54 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.396', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 8 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 8 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \'foo\' in 5000ms - expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web" (5100ms)', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png'] - }], - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'tests': 2, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '15.78', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 26 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 26 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 15779, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:54 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.396', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 8 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 8 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png'] - }], - 'tests': 2, - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'timeMs': 5396, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:15 GMT' + lastError: { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)' + }, + timeMs: 4669, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:32 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'using CDP DOM Snapshot': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://nightwatchjs.org' + ], + startTime: 1680776367423, + endTime: 1680776371918, + elapsedTime: 4495, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'chrome.sendAndGetDevToolsCommand', + args: [ + 'DOMSnapshot.captureSnapshot', + '[object Object]' + ], + startTime: 1680776371920, + endTime: 1680776371920, + elapsedTime: 0, + status: 'fail', + result: { + message: 'Error while running "chrome.sendAndGetDevToolsCommand" command: [TypeError] nightwatchInstance.transport.driver[commandName] is not a function', + name: 'TypeError', + abortOnFailure: true, + stack: 'TypeError: Error while running "chrome.sendAndGetDevToolsCommand" command: [TypeError] nightwatchInstance.transport.driver[commandName] is not a function\n at ChromeCommandLoader.commandFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/_base-loader.js:38:62)\n at TreeNode.invokeCommand (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:154:31)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:177:12\n at new Promise ()\n at TreeNode.execute (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:176:12)\n at TreeNode.runCommand (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:138:27)\n at TreeNode.run (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:112:17)\n at AsyncTree.runChildNode (/Users/vaibhavsingh/Dev/nightwatch/lib/core/asynctree.js:118:31)\n at AsyncTree.traverse (/Users/vaibhavsingh/Dev/nightwatch/lib/core/asynctree.js:48:33)\n at CommandQueue.traverse (/Users/vaibhavsingh/Dev/nightwatch/lib/core/queue.js:97:8)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/_base-loader.js', + error_line_number: 38, + codeSnippet: [ + { + line_number: 36, + code: ' static createDriverCommand(nightwatchInstance, commandName) {' + }, + { + line_number: 37, + code: ' return function commandFn({args}) {' + }, + { + line_number: 38, + code: ' return nightwatchInstance.transport.driver[commandName](...args).catch((error) => {' + }, + { + line_number: 39, + code: ' if (error.remoteStacktrace) {' + }, + { + line_number: 40, + code: ' delete error.remoteStacktrace;' + } + ] + } + } + }, + { + name: 'assert.deepStrictEqual', + args: [ + ], + startTime: 1680776371927, + endTime: 1680776371930, + elapsedTime: 3, + status: 'fail', + result: { + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected "documents,strings" but got: "abortOnFailure" (4ms)', + showDiff: false, + name: 'NightwatchAssertError', + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js', + error_line_number: 10, + codeSnippet: [ + { + line_number: 8, + code: ' });' + }, + { + line_number: 9, + code: '' + }, + { + line_number: 10, + code: ' browser.assert.deepStrictEqual(Object.keys(dom), [\'documents\', \'strings\']);' + }, + { + line_number: 11, + code: ' });' + }, + { + line_number: 12, + code: '});' + } + ] + } + }, + screenshot: '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png' + }, + { + name: 'saveScreenshot', + args: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png', + 'function () { [native code] }' + ], + startTime: 1680776371985, + endTime: 1680776372089, + elapsedTime: 104, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'fail' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776372096, + endTime: 1680776372556, + elapsedTime: 460, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 1, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:25 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:32 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93704, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofiletwZmUW', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '245b46ac-127c-49fa-8360-05e674967894', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'fail', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/chromeCDP_example_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 1, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:25.786Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:27.415Z', + ' Response 200 POST /session (1630ms)', + '{\n value: {\n sessionId: '245b46ac-127c-49fa-8360-05e674967894',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93704,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofiletwZmUW',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.426Z', + ' Request POST /session/245b46ac-127c-49fa-8360-05e674967894/url ', + '{ url: 'https://nightwatchjs.org' }' + ], + [ + '2023-04-06T10:19:31.915Z', + ' Response 200 POST /session/245b46ac-127c-49fa-8360-05e674967894/url (4490ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:31.987Z', + ' Request GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot ', + '''' + ], + [ + '2023-04-06T10:19:32.085Z', + ' Response 200 GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot (76ms)', + '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuydB3wURRvG34QUQu8gXQRpoqIiVhQUBQSxgYgF+RRB...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:32.100Z', + ' Request DELETE /session/245b46ac-127c-49fa-8360-05e674967894 ', + '''' + ], + [ + '2023-04-06T10:19:32.554Z', + ' Response 200 DELETE /session/245b46ac-127c-49fa-8360-05e674967894 (454ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:25.786Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:27.415Z', + ' Response 200 POST /session (1630ms)', + '{\n value: {\n sessionId: \'245b46ac-127c-49fa-8360-05e674967894\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93704,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofiletwZmUW\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.426Z', + ' Request POST /session/245b46ac-127c-49fa-8360-05e674967894/url ', + '{ url: \'https://nightwatchjs.org\' }' + ], + [ + '2023-04-06T10:19:31.915Z', + ' Response 200 POST /session/245b46ac-127c-49fa-8360-05e674967894/url (4490ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:31.987Z', + ' Request GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot ', + '\'\'' + ], + [ + '2023-04-06T10:19:32.085Z', + ' Response 200 GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot (76ms)', + '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuydB3wURRvG34QUQu8gXQRpoqIiVhQUBQSxgYgF+RRB...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:32.100Z', + ' Request DELETE /session/245b46ac-127c-49fa-8360-05e674967894 ', + '\'\'' + ], + [ + '2023-04-06T10:19:32.554Z', + ' Response 200 DELETE /session/245b46ac-127c-49fa-8360-05e674967894 (454ms)', + '{ value: null }' + ] + ], + globalErrorRegister: [ + ' \u001b[1;31m→ ✖ \u001b[1;31mNightwatchAssertError\u001b[0m\n \u001b[0;31mFailed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m\u001b[0m\n\u001b[0;33m\n Error location:\u001b[0m\n /Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:\n ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n 8 | });\n 9 | \n \u001b[0;37m\u001b[41m 10 | browser.assert.deepStrictEqual(Object.keys(dom), [\'documents\', \'strings\']); \u001b[0m\n 11 | });\n 12 | });\n ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n\u001b[0m' + ] + }, + angularTodoTest: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 2, + lastError: null, + skipped: [ + ], + time: '1.908', + timeMs: 1908, + completed: { + 'should add a todo using custom commands': { + time: '1.908', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected element text to equal: "what is nightwatch?" (15ms)', + stackTrace: '', + fullMsg: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <*[module=todoApp] li .done-true> count to equal: "2" (5ms)', + stackTrace: '', + fullMsg: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (5ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should add a todo using custom commands': { + time: '1.908', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (5ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (5ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1908, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT' + } + }, + timeMs: 1908, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should add a todo using custom commands': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://angularjs.org' + ], + startTime: 1680776367982, + endTime: 1680776369381, + elapsedTime: 1399, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + '[ng-model="todoList.todoText"]', + 'what is nightwatch?' + ], + startTime: 1680776369382, + endTime: 1680776369412, + elapsedTime: 30, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + '[value="add"]' + ], + startTime: 1680776369412, + endTime: 1680776369631, + elapsedTime: 219, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'getElementsInList', + args: [ + 'todoList.todos' + ], + startTime: 1680776369631, + endTime: 1680776369638, + elapsedTime: 7, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + 'web element{f201c631-099d-4556-b725-1b9036ff21e7}' + ], + startTime: 1680776369642, + endTime: 1680776369658, + elapsedTime: 16, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776369658, + endTime: 1680776369662, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'click', + args: [ + '[object Object]' + ], + startTime: 1680776369662, + endTime: 1680776369876, + elapsedTime: 214, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '*[module=todoApp] li .done-true' + ], + startTime: 1680776369878, + endTime: 1680776369883, + elapsedTime: 5, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776369890, + endTime: 1680776370259, + elapsedTime: 369, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 2, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/angularTodoTest.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:25 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93705, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileCfAJtT', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '1a5fbc5c-7381-4c6e-991b-936453257b8d', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/angularTodoTest_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:25.817Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:27.970Z', + ' Response 200 POST /session (2155ms)', + '{\n value: {\n sessionId: '1a5fbc5c-7381-4c6e-991b-936453257b8d',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93705,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileCfAJtT',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.986Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url ', + '{ url: 'https://angularjs.org' }' + ], + [ + '2023-04-06T10:19:29.380Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url (1394ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.385Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: 'css selector', value: '[ng-model="todoList.todoText"]' }' + ], + [ + '2023-04-06T10:19:29.391Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (7ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9e5ff74b-5b5b-4221-90b6-d14dcc856ec8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.393Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value ', + '{\n text: 'what is nightwatch?',\n value: [\n 'w', 'h', 'a', 't', ' ',\n 'i', 's', ' ', 'n', 'i',\n 'g', 'h', 't', 'w', 'a',\n 't', 'c', 'h', '?'\n ]\n }' + ], + [ + '2023-04-06T10:19:29.411Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value (18ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.413Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: 'css selector', value: '[value="add"]' }' + ], + [ + '2023-04-06T10:19:29.416Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b00c28b3-319c-44f5-906d-c24b3debafd7'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.418Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.631Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click (213ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.634Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync ', + '{\n script: 'var passedArgs = Array.prototype.slice.call(arguments,0); return (function(listName) {\\n' +\n ' // executed in the browser context\\n' +\n ' // eslint-disable-next-line\\n' +\n ' var elements = document.querySel... (366 characters)',\n args: [ 'todoList.todos' ]\n }' + ], + [ + '2023-04-06T10:19:29.637Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'df85178f-1166-489c-827d-17e13fecf95a'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed6dc16b-f99b-4ab7-821b-c17030dcd5de'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f201c631-099d-4556-b725-1b9036ff21e7'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.643Z', + ' Request GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text ', + '''' + ], + [ + '2023-04-06T10:19:29.656Z', + ' Response 200 GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text (13ms)', + '{ value: 'what is nightwatch?' }' + ], + [ + '2023-04-06T10:19:29.659Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element ', + '{ using: 'css selector', value: 'input' }' + ], + [ + '2023-04-06T10:19:29.662Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element (3ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '8b05c802-195a-4804-a216-09892ca94a68'\n }\n }' + ], + [ + '2023-04-06T10:19:29.663Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.875Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.879Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: 'css selector', value: '*[module=todoApp] li .done-true' }' + ], + [ + '2023-04-06T10:19:29.883Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f027fd19-1bf0-406e-899c-c005c1e40456'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed3f1754-6119-41a2-83c1-d56075d6b38a'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.893Z', + ' Request DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d ', + '''' + ], + [ + '2023-04-06T10:19:30.257Z', + ' Response 200 DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d (365ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:25.817Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:27.970Z', + ' Response 200 POST /session (2155ms)', + '{\n value: {\n sessionId: \'1a5fbc5c-7381-4c6e-991b-936453257b8d\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93705,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileCfAJtT\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.986Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url ', + '{ url: \'https://angularjs.org\' }' + ], + [ + '2023-04-06T10:19:29.380Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url (1394ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.385Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: \'css selector\', value: \'[ng-model="todoList.todoText"]\' }' + ], + [ + '2023-04-06T10:19:29.391Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (7ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9e5ff74b-5b5b-4221-90b6-d14dcc856ec8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.393Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value ', + '{\n text: \'what is nightwatch?\',\n value: [\n \'w\', \'h\', \'a\', \'t\', \' \',\n \'i\', \'s\', \' \', \'n\', \'i\',\n \'g\', \'h\', \'t\', \'w\', \'a\',\n \'t\', \'c\', \'h\', \'?\'\n ]\n }' + ], + [ + '2023-04-06T10:19:29.411Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value (18ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.413Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: \'css selector\', value: \'[value="add"]\' }' + ], + [ + '2023-04-06T10:19:29.416Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b00c28b3-319c-44f5-906d-c24b3debafd7\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.418Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.631Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click (213ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.634Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync ', + '{\n script: \'var passedArgs = Array.prototype.slice.call(arguments,0); return (function(listName) {\\n\' +\n \' // executed in the browser context\\n\' +\n \' // eslint-disable-next-line\\n\' +\n \' var elements = document.querySel... (366 characters)\',\n args: [ \'todoList.todos\' ]\n }' + ], + [ + '2023-04-06T10:19:29.637Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'df85178f-1166-489c-827d-17e13fecf95a\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed6dc16b-f99b-4ab7-821b-c17030dcd5de\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f201c631-099d-4556-b725-1b9036ff21e7\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.643Z', + ' Request GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:29.656Z', + ' Response 200 GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text (13ms)', + '{ value: \'what is nightwatch?\' }' + ], + [ + '2023-04-06T10:19:29.659Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element ', + '{ using: \'css selector\', value: \'input\' }' + ], + [ + '2023-04-06T10:19:29.662Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element (3ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8b05c802-195a-4804-a216-09892ca94a68\'\n }\n }' + ], + [ + '2023-04-06T10:19:29.663Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.875Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.879Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: \'css selector\', value: \'*[module=todoApp] li .done-true\' }' + ], + [ + '2023-04-06T10:19:29.883Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f027fd19-1bf0-406e-899c-c005c1e40456\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed3f1754-6119-41a2-83c1-d56075d6b38a\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.893Z', + ' Request DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d ', + '\'\'' + ], + [ + '2023-04-06T10:19:30.257Z', + ' Response 200 DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d (365ms)', + '{ value: null }' + ] + ] + }, + duckDuckGo: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 1, + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + skipped: [ + ], + time: '5.777', + timeMs: 5777, + completed: { + 'Search Nightwatch.js and check results': { + time: '5.777', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5088ms)', + stackTrace: ' at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + fullMsg: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + failure: 'Expected "visible" but got: "not found"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png' + ] + } + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + tests: 1, + status: 'fail', + steps: [ + ], + stackTrace: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + testcases: { + 'Search Nightwatch.js and check results': { + time: '5.777', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + stackTrace: ' at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + fullMsg: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + failure: 'Expected "visible" but got: "not found"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png' + ] + } + ], + tests: 1, + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + status: 'fail', + steps: [ + ], + stackTrace: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + timeMs: 5777, + startTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:34 GMT' + } + }, + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + timeMs: 5777, + startTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:34 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'Search Nightwatch.js and check results': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://duckduckgo.com' + ], + startTime: 1680776369008, + endTime: 1680776369560, + elapsedTime: 552, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + '#search_form_input_homepage' + ], + startTime: 1680776369561, + endTime: 1680776374652, + elapsedTime: 5091, + status: 'fail', + result: { + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5088ms)', + showDiff: false, + name: 'NightwatchAssertError', + abortOnFailure: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js', + error_line_number: 8, + codeSnippet: [ + { + line_number: 6, + code: ' browser' + }, + { + line_number: 7, + code: ' .navigateTo(\'https://duckduckgo.com\')' + }, + { + line_number: 8, + code: ' .waitForElementVisible(\'#search_form_input_homepage\')' + }, + { + line_number: 9, + code: ' .sendKeys(\'#search_form_input_homepage\', [\'Nightwatch.js\'])' + }, + { + line_number: 10, + code: ' .click(\'#search_button_homepage\')' + } + ] + } + }, + screenshot: '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png' + }, + { + name: 'saveScreenshot', + args: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png', + 'function () { [native code] }' + ], + startTime: 1680776374705, + endTime: 1680776374779, + elapsedTime: 74, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'fail' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776374783, + endTime: 1680776375248, + elapsedTime: 465, + status: 'pass' } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 1, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:26 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:34 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93718, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile7QoCZB', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '57729330-9108-4abf-9b31-a590c5cdf0e9', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'fail', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/duckDuckGo_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 1, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:27.321Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:28.997Z', + ' Response 200 POST /session (1678ms)', + '{\n value: {\n sessionId: '57729330-9108-4abf-9b31-a590c5cdf0e9',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93718,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile7QoCZB',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:29.011Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url ', + '{ url: 'https://duckduckgo.com' }' + ], + [ + '2023-04-06T10:19:29.559Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url (549ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.563Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:29.573Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (10ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.075Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:30.077Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.581Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:30.599Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (18ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.101Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:31.106Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.608Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:31.611Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.115Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:32.120Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.622Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:32.625Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.128Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:33.132Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.635Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:33.638Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.140Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:34.144Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.646Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:34.649Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.708Z', + ' Request GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot ', + '''' + ], + [ + '2023-04-06T10:19:34.774Z', + ' Response 200 GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot (54ms)', + '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuzdeZhcZZk34Kf39JLuzr5CCIQlIARZBJTFBRVRRNEZ...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:34.787Z', + ' Request DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 ', + '''' + ], + [ + '2023-04-06T10:19:35.245Z', + ' Response 200 DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 (456ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:27.321Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:28.997Z', + ' Response 200 POST /session (1678ms)', + '{\n value: {\n sessionId: \'57729330-9108-4abf-9b31-a590c5cdf0e9\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93718,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile7QoCZB\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:29.011Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url ', + '{ url: \'https://duckduckgo.com\' }' + ], + [ + '2023-04-06T10:19:29.559Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url (549ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.563Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:29.573Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (10ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.075Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:30.077Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.581Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:30.599Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (18ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.101Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:31.106Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.608Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:31.611Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.115Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:32.120Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.622Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:32.625Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.128Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:33.132Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.635Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:33.638Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.140Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:34.144Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.646Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:34.649Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.708Z', + ' Request GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot ', + '\'\'' + ], + [ + '2023-04-06T10:19:34.774Z', + ' Response 200 GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot (54ms)', + '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuzdeZhcZZk34Kf39JLuzr5CCIQlIARZBJTFBRVRRNEZ...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:34.787Z', + ' Request DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 ', + '\'\'' + ], + [ + '2023-04-06T10:19:35.245Z', + ' Response 200 DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 (456ms)', + '{ value: null }' + ] + ], + globalErrorRegister: [ + ' \u001b[1;31m→ ✖ \u001b[1;31mNightwatchAssertError\u001b[0m\n \u001b[0;31mTimed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m\u001b[0m\n\u001b[0;33m\n Error location:\u001b[0m\n /Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n 6 | browser\n 7 | .navigateTo(\'https://duckduckgo.com\')\n \u001b[0;37m\u001b[41m 8 | .waitForElementVisible(\'#search_form_input_homepage\') \u001b[0m\n 9 | .sendKeys(\'#search_form_input_homepage\', [\'Nightwatch.js\'])\n 10 | .click(\'#search_button_homepage\')\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n\u001b[0m' + ] + }, + googlePageObject: { + reportPrefix: '', + assertionsCount: 0, + lastError: null, + skipped: [ + 'should complete the consent form' + ], + time: 0, + completed: { + }, + completedSections: { + }, + errmessages: [ + ], + testsCount: 0, + skippedCount: 1, + failedCount: 0, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/googlePageObject.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:36 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:36 GMT', + sessionCapabilities: { + browserName: 'firefox', + alwaysMatch: { + acceptInsecureCerts: true, + 'moz:firefoxOptions': { + args: [ + ] + } + }, + name: 'google search with consent form - page objects' + }, + sessionId: '', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'skip', + host: 'localhost', + tests: 0, + failures: 0, + errors: 0, + httpOutput: [ + ], + rawHttpOutput: [ + ] + }, + google: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 2, + lastError: null, + skipped: [ + ], + time: '10.68', + timeMs: 10675, + completed: { + 'demo test using expect apis': { + time: '10.68', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 15 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 15 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element <#rso>:first-child> contains text \'Nightwatch.js\' (1069ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(1069ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'demo test using expect apis': { + time: '10.68', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 15 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 15 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(1069ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(1069ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 10675, + startTimestamp: 'Thu, 06 Apr 2023 10:19:35 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:46 GMT' + } + }, + timeMs: 10675, + startTimestamp: 'Thu, 06 Apr 2023 10:19:35 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:46 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'demo test using expect apis': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'http://google.no' + ], + startTime: 1680776375516, + endTime: 1680776379577, + elapsedTime: 4061, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'isPresent', + args: [ + '[aria-modal="true"][title="Before you continue to Google Search"]' + ], + startTime: 1680776379578, + endTime: 1680776384672, + elapsedTime: 5094, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + 'form[action="/search"] input[type=text]' + ], + startTime: 1680776384675, + endTime: 1680776384690, + elapsedTime: 15, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + 'form[action="/search"] input[type=text]', + 'Nightwatch.js,' + ], + startTime: 1680776384690, + endTime: 1680776384728, + elapsedTime: 38, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.textContains', + args: [ + '#rso>:first-child', + 'Nightwatch.js' + ], + startTime: 1680776384728, + endTime: 1680776385800, + elapsedTime: 1072, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'end', + args: [ + ], + startTime: 1680776385800, + endTime: 1680776386186, + elapsedTime: 386, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 2, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/google.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:33 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:46 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93775, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileoRDuKX', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: 'c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:34.090Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:35.510Z', + ' Response 200 POST /session (1421ms)', + '{\n value: {\n sessionId: 'c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93775,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileoRDuKX',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:35.517Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url ', + '{ url: 'http://google.no' }' + ], + [ + '2023-04-06T10:19:39.576Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url (4059ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:39.580Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:39.588Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.091Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:40.096Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.598Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:40.600Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.103Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:41.111Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.614Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:41.620Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.123Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:42.128Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.630Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:42.637Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.140Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:43.154Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (15ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.656Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:43.659Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.161Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:44.163Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.665Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:44.669Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.676Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: 'form[action="/search"] input[type=text]'\n }' + ], + [ + '2023-04-06T10:19:44.680Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd11d4330-8ae2-44c8-b64a-3971618fbde5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.682Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd11d4330-8ae2-44c8-b64a-3971618fbde5',\n ELEMENT: 'd11d4330-8ae2-44c8-b64a-3971618fbde5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.689Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:44.691Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: 'form[action="/search"] input[type=text]'\n }' + ], + [ + '2023-04-06T10:19:44.694Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd11d4330-8ae2-44c8-b64a-3971618fbde5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.695Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value ', + '{\n text: 'Nightwatch.js',\n value: [\n 'N', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h', '.', 'j',\n 's', ''\n ]\n }' + ], + [ + '2023-04-06T10:19:44.727Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value (32ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:44.730Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:19:44.732Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.235Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:19:45.238Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.741Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:19:45.744Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1e7d46f7-02cf-45c5-9db9-6673572e7e78'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:45.746Z', + ' Request GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text ', + '''' + ], + [ + '2023-04-06T10:19:45.797Z', + ' Response 200 GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text (51ms)', + '{\n value: 'Web result with site links\\n' +\n '\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwatch....',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:45.803Z', + ' Request DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d ', + '''' + ], + [ + '2023-04-06T10:19:46.185Z', + ' Response 200 DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d (383ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:34.090Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:35.510Z', + ' Response 200 POST /session (1421ms)', + '{\n value: {\n sessionId: \'c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93775,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileoRDuKX\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:35.517Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url ', + '{ url: \'http://google.no\' }' + ], + [ + '2023-04-06T10:19:39.576Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url (4059ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:39.580Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:39.588Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.091Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:40.096Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.598Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:40.600Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.103Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:41.111Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.614Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:41.620Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.123Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:42.128Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.630Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:42.637Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.140Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:43.154Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (15ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.656Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:43.659Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.161Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:44.163Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.665Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:44.669Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.676Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'form[action="/search"] input[type=text]\'\n }' + ], + [ + '2023-04-06T10:19:44.680Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d11d4330-8ae2-44c8-b64a-3971618fbde5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.682Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d11d4330-8ae2-44c8-b64a-3971618fbde5\',\n ELEMENT: \'d11d4330-8ae2-44c8-b64a-3971618fbde5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.689Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:44.691Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'form[action="/search"] input[type=text]\'\n }' + ], + [ + '2023-04-06T10:19:44.694Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d11d4330-8ae2-44c8-b64a-3971618fbde5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.695Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value ', + '{\n text: \'Nightwatch.js\',\n value: [\n \'N\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\', \'.\', \'j\',\n \'s\', \'\'\n ]\n }' + ], + [ + '2023-04-06T10:19:44.727Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value (32ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:44.730Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:19:44.732Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.235Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:19:45.238Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.741Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:19:45.744Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1e7d46f7-02cf-45c5-9db9-6673572e7e78\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:45.746Z', + ' Request GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:45.797Z', + ' Response 200 GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text (51ms)', + '{\n value: \'Web result with site links\\n\' +\n \'\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwatch....\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:45.803Z', + ' Request DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d ', + '\'\'' + ], + [ + '2023-04-06T10:19:46.185Z', + ' Response 200 DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d (383ms)', + '{ value: null }' + ] + ] + }, + shadowRootExample: { + reportPrefix: '', + assertionsCount: 0, + lastError: null, + skipped: [ + 'retrieve the shadowRoot' + ], + time: 0, + completed: { + }, + completedSections: { + }, + errmessages: [ + ], + testsCount: 0, + skippedCount: 1, + failedCount: 0, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/shadowRootExample.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:45 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:45 GMT', + sessionCapabilities: { + browserName: 'firefox', + alwaysMatch: { + acceptInsecureCerts: true, + 'moz:firefoxOptions': { + args: [ + ] + } + }, + name: 'Shadow Root example test' + }, + sessionId: '', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'skip', + host: 'localhost', + tests: 0, + failures: 0, + errors: 0, + httpOutput: [ + ], + rawHttpOutput: [ + ] + }, + vueTodoList: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 3, + lastError: null, + skipped: [ + ], + time: '1.251', + timeMs: 1251, + completed: { + 'should add a todo using global element()': { + time: '1.251', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li> count to equal: "5" (4ms)', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element <#todo-list ul li> text to contain: "what is nightwatch?" (15ms)', + stackTrace: '', + fullMsg: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li input:checked> count to equal: "3" (4ms)', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should add a todo using global element()': { + time: '1.251', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1251, + startTimestamp: 'Thu, 06 Apr 2023 10:19:47 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:48 GMT' + } + }, + timeMs: 1251, + startTimestamp: 'Thu, 06 Apr 2023 10:19:47 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:48 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should add a todo using global element()': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://todo-vue3-vite.netlify.app/' + ], + startTime: 1680776387084, + endTime: 1680776387841, + elapsedTime: 757, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + '#new-todo-input', + 'what is nightwatch?' + ], + startTime: 1680776387841, + endTime: 1680776387864, + elapsedTime: 23, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + 'form button[type="submit"]' + ], + startTime: 1680776387865, + endTime: 1680776388087, + elapsedTime: 222, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '#todo-list ul li' + ], + startTime: 1680776388091, + endTime: 1680776388095, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + '#todo-list ul li' + ], + startTime: 1680776388096, + endTime: 1680776388111, + elapsedTime: 15, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776388111, + endTime: 1680776388114, + elapsedTime: 3, + status: 'pass', + result: { + } + }, + { + name: 'click', + args: [ + '[object Object]' + ], + startTime: 1680776388116, + endTime: 1680776388327, + elapsedTime: 211, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '#todo-list ul li input:checked' + ], + startTime: 1680776388328, + endTime: 1680776388332, + elapsedTime: 4, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776388337, + endTime: 1680776389341, + elapsedTime: 1004, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 3, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/vueTodoList.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:45 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:48 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93855, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile2iTSVu', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '02cdc21b-3ae3-4f80-b595-07f8498c4a11', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/vueTodoList_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:45.864Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:47.078Z', + ' Response 200 POST /session (1217ms)', + '{\n value: {\n sessionId: '02cdc21b-3ae3-4f80-b595-07f8498c4a11',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93855,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile2iTSVu',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:47.085Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url ', + '{ url: 'https://todo-vue3-vite.netlify.app/' }' + ], + [ + '2023-04-06T10:19:47.840Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url (755ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.843Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#new-todo-input' }' + ], + [ + '2023-04-06T10:19:47.848Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'cbf47355-2c00-4daf-b3b5-8179d43d1e88'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.851Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value ', + '{\n text: 'what is nightwatch?',\n value: [\n 'w', 'h', 'a', 't', ' ',\n 'i', 's', ' ', 'n', 'i',\n 'g', 'h', 't', 'w', 'a',\n 't', 'c', 'h', '?'\n ]\n }' + ], + [ + '2023-04-06T10:19:47.863Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value (13ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.867Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: 'form button[type="submit"]' }' + ], + [ + '2023-04-06T10:19:47.871Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.873Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.087Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click (215ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.092Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#todo-list ul li' }' + ], + [ + '2023-04-06T10:19:48.094Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9fba7102-78a1-4f16-8085-471f605574cf'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd8c3dbca-d8d8-4395-bdee-5dd16a889d37'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '320b0952-82ca-4c8d-b91b-36141f695c14'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f8514d2e-85c6-4991-8920-31e10a6d7f88'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2bfecd6d-d71c-4946-97bd-5521f6a31055'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.096Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#todo-list ul li' }' + ], + [ + '2023-04-06T10:19:48.098Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9fba7102-78a1-4f16-8085-471f605574cf'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd8c3dbca-d8d8-4395-bdee-5dd16a889d37'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '320b0952-82ca-4c8d-b91b-36141f695c14'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f8514d2e-85c6-4991-8920-31e10a6d7f88'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2bfecd6d-d71c-4946-97bd-5521f6a31055'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.099Z', + ' Request GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text ', + '''' + ], + [ + '2023-04-06T10:19:48.110Z', + ' Response 200 GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text (11ms)', + '{\n value: 'new taskwhat is nightwatch?\\n' +\n 'Edit\\n' +\n 'New Taskwhat Is Nightwatch?\\n' +\n 'Delete\\n' +\n 'New Taskwhat Is Nightwatch?'\n }' + ], + [ + '2023-04-06T10:19:48.112Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element ', + '{ using: 'css selector', value: 'input[type="checkbox"]' }' + ], + [ + '2023-04-06T10:19:48.114Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element (2ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '9db02cb5-bb43-4ef1-b935-38a417240ee2'\n }\n }' + ], + [ + '2023-04-06T10:19:48.117Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.327Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click (209ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.329Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#todo-list ul li input:checked' }' + ], + [ + '2023-04-06T10:19:48.331Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'a6373a47-f735-4162-bb2d-36b5aa4756a4'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '56a696cc-b2f5-4300-8428-0bcf93409417'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9db02cb5-bb43-4ef1-b935-38a417240ee2'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.340Z', + ' Request DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 ', + '''' + ], + [ + '2023-04-06T10:19:49.340Z', + ' Response 200 DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 (1000ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:45.864Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:47.078Z', + ' Response 200 POST /session (1217ms)', + '{\n value: {\n sessionId: \'02cdc21b-3ae3-4f80-b595-07f8498c4a11\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93855,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile2iTSVu\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:47.085Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url ', + '{ url: \'https://todo-vue3-vite.netlify.app/\' }' + ], + [ + '2023-04-06T10:19:47.840Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url (755ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.843Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#new-todo-input\' }' + ], + [ + '2023-04-06T10:19:47.848Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'cbf47355-2c00-4daf-b3b5-8179d43d1e88\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.851Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value ', + '{\n text: \'what is nightwatch?\',\n value: [\n \'w\', \'h\', \'a\', \'t\', \' \',\n \'i\', \'s\', \' \', \'n\', \'i\',\n \'g\', \'h\', \'t\', \'w\', \'a\',\n \'t\', \'c\', \'h\', \'?\'\n ]\n }' + ], + [ + '2023-04-06T10:19:47.863Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value (13ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.867Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'form button[type="submit"]\' }' + ], + [ + '2023-04-06T10:19:47.871Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.873Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.087Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click (215ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.092Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li\' }' + ], + [ + '2023-04-06T10:19:48.094Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9fba7102-78a1-4f16-8085-471f605574cf\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d8c3dbca-d8d8-4395-bdee-5dd16a889d37\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'320b0952-82ca-4c8d-b91b-36141f695c14\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f8514d2e-85c6-4991-8920-31e10a6d7f88\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2bfecd6d-d71c-4946-97bd-5521f6a31055\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.096Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li\' }' + ], + [ + '2023-04-06T10:19:48.098Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9fba7102-78a1-4f16-8085-471f605574cf\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d8c3dbca-d8d8-4395-bdee-5dd16a889d37\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'320b0952-82ca-4c8d-b91b-36141f695c14\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f8514d2e-85c6-4991-8920-31e10a6d7f88\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2bfecd6d-d71c-4946-97bd-5521f6a31055\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.099Z', + ' Request GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:48.110Z', + ' Response 200 GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text (11ms)', + '{\n value: \'new taskwhat is nightwatch?\\n\' +\n \'Edit\\n\' +\n \'New Taskwhat Is Nightwatch?\\n\' +\n \'Delete\\n\' +\n \'New Taskwhat Is Nightwatch?\'\n }' + ], + [ + '2023-04-06T10:19:48.112Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element ', + '{ using: \'css selector\', value: \'input[type="checkbox"]\' }' + ], + [ + '2023-04-06T10:19:48.114Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element (2ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9db02cb5-bb43-4ef1-b935-38a417240ee2\'\n }\n }' + ], + [ + '2023-04-06T10:19:48.117Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.327Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click (209ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.329Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li input:checked\' }' + ], + [ + '2023-04-06T10:19:48.331Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'a6373a47-f735-4162-bb2d-36b5aa4756a4\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'56a696cc-b2f5-4300-8428-0bcf93409417\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9db02cb5-bb43-4ef1-b935-38a417240ee2\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.340Z', + ' Request DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 ', + '\'\'' + ], + [ + '2023-04-06T10:19:49.340Z', + ' Response 200 DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 (1000ms)', + '{ value: null }' + ] + ] + }, + ecosia: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 5, + lastError: null, + skipped: [ + ], + time: '3.056', + timeMs: 3056, + completed: { + 'Demo test ecosia.org': { + time: '3.056', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 39 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 39 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if the page title contains \'Ecosia\' (7ms)', + stackTrace: '', + fullMsg: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element is visible (17ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(17ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element is visible (86ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(86ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element <.layout__content> contains text \'Nightwatch.js\' (136ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(136ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 5, + errors: 0, + failed: 0, + skipped: 0, + tests: 5, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'Demo test ecosia.org': { + time: '3.056', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 39 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 39 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(17ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(17ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(86ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(86ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(136ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(136ms)\u001b[0m', + failure: false + } + ], + tests: 5, + commands: [ + ], + passed: 5, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 3056, + startTimestamp: 'Thu, 06 Apr 2023 10:18:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT' + } + }, + timeMs: 3056, + startTimestamp: 'Thu, 06 Apr 2023 10:18:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://www.ecosia.org/' + ], + startTime: 1680776313426, + endTime: 1680776317581, + elapsedTime: 4155, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'Demo test ecosia.org': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'body' + ], + startTime: 1680776317585, + endTime: 1680776317625, + elapsedTime: 40, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.titleContains', + args: [ + 'Ecosia' + ], + startTime: 1680776317626, + endTime: 1680776317633, + elapsedTime: 7, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.visible', + args: [ + 'input[type=search]' + ], + startTime: 1680776317633, + endTime: 1680776317653, + elapsedTime: 20, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'setValue', + args: [ + 'input[type=search]', + 'nightwatch' + ], + startTime: 1680776317653, + endTime: 1680776317770, + elapsedTime: 117, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.visible', + args: [ + 'button[type=submit]' + ], + startTime: 1680776317770, + endTime: 1680776317857, + elapsedTime: 87, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + 'button[type=submit]' + ], + startTime: 1680776317858, + endTime: 1680776320498, + elapsedTime: 2640, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.textContains', + args: [ + '.layout__content', + 'Nightwatch.js' + ], + startTime: 1680776320498, + endTime: 1680776320637, + elapsedTime: 139, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + ], + startTime: 1680776320640, + endTime: 1680776320701, + elapsedTime: 61, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 5, + group: '', + modulePath: '/examples/tests/ecosia.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.crT7I3' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52878' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '5e487662a1e1be6f6d821f923d21af64', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/ecosia_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:31.743Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.414Z', + ' Response 200 POST /session (1683ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.crT7I3'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52878' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '5e487662a1e1be6f6d821f923d21af64'\n }\n }' + ], + [ + '2023-04-06T10:18:33.429Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/url ', + '{ url: 'https://www.ecosia.org/' }' + ], + [ + '2023-04-06T10:18:37.580Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/url (4152ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.587Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'body' }' + ], + [ + '2023-04-06T10:18:37.604Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (17ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f9443218-7896-44fc-9e32-b7d8642bade8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.608Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f9443218-7896-44fc-9e32-b7d8642bade8',\n ELEMENT: 'f9443218-7896-44fc-9e32-b7d8642bade8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.624Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (16ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.629Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/title ', + '''' + ], + [ + '2023-04-06T10:18:37.632Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/title (4ms)', + '{ value: 'Ecosia - the search engine that plants trees' }' + ], + [ + '2023-04-06T10:18:37.636Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'input[type=search]' }' + ], + [ + '2023-04-06T10:18:37.641Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.642Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f',\n ELEMENT: 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.651Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.654Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'input[type=search]' }' + ], + [ + '2023-04-06T10:18:37.663Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (9ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.664Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear ', + '{}' + ], + [ + '2023-04-06T10:18:37.683Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear (19ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.685Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value ', + '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }' + ], + [ + '2023-04-06T10:18:37.769Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value (84ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.774Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'button[type=submit]' }' + ], + [ + '2023-04-06T10:18:37.843Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (69ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.847Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b',\n ELEMENT: 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.855Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.860Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'button[type=submit]' }' + ], + [ + '2023-04-06T10:18:37.864Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.865Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click ', + '{}' + ], + [ + '2023-04-06T10:18:40.497Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click (2632ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:40.501Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: '.layout__content' }' + ], + [ + '2023-04-06T10:18:40.507Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'e3557007-ed36-4c86-b27a-7c09e9317276'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:40.509Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text ', + '''' + ], + [ + '2023-04-06T10:18:40.634Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text (125ms)', + '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:40.643Z', + ' Request DELETE /session/5e487662a1e1be6f6d821f923d21af64 ', + '''' + ], + [ + '2023-04-06T10:18:40.700Z', + ' Response 200 DELETE /session/5e487662a1e1be6f6d821f923d21af64 (57ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:31.743Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.414Z', + ' Response 200 POST /session (1683ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.crT7I3\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52878\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'5e487662a1e1be6f6d821f923d21af64\'\n }\n }' + ], + [ + '2023-04-06T10:18:33.429Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/url ', + '{ url: \'https://www.ecosia.org/\' }' + ], + [ + '2023-04-06T10:18:37.580Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/url (4152ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.587Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'body\' }' + ], + [ + '2023-04-06T10:18:37.604Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (17ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f9443218-7896-44fc-9e32-b7d8642bade8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.608Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f9443218-7896-44fc-9e32-b7d8642bade8\',\n ELEMENT: \'f9443218-7896-44fc-9e32-b7d8642bade8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.624Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (16ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.629Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/title ', + '\'\'' + ], + [ + '2023-04-06T10:18:37.632Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/title (4ms)', + '{ value: \'Ecosia - the search engine that plants trees\' }' + ], + [ + '2023-04-06T10:18:37.636Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'input[type=search]\' }' + ], + [ + '2023-04-06T10:18:37.641Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.642Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\',\n ELEMENT: \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.651Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.654Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'input[type=search]\' }' + ], + [ + '2023-04-06T10:18:37.663Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (9ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.664Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear ', + '{}' + ], + [ + '2023-04-06T10:18:37.683Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear (19ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.685Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value ', + '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }' + ], + [ + '2023-04-06T10:18:37.769Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value (84ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.774Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'button[type=submit]\' }' + ], + [ + '2023-04-06T10:18:37.843Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (69ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.847Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\',\n ELEMENT: \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.855Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.860Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'button[type=submit]\' }' + ], + [ + '2023-04-06T10:18:37.864Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.865Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click ', + '{}' + ], + [ + '2023-04-06T10:18:40.497Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click (2632ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:40.501Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'.layout__content\' }' + ], + [ + '2023-04-06T10:18:40.507Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'e3557007-ed36-4c86-b27a-7c09e9317276\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:40.509Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text ', + '\'\'' + ], + [ + '2023-04-06T10:18:40.634Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text (125ms)', + '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:40.643Z', + ' Request DELETE /session/5e487662a1e1be6f6d821f923d21af64 ', + '\'\'' + ], + [ + '2023-04-06T10:18:40.700Z', + ' Response 200 DELETE /session/5e487662a1e1be6f6d821f923d21af64 (57ms)', + '{ value: null }' + ] + ] + }, + 'sample-with-relative-locators': { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 5, + lastError: null, + skipped: [ + ], + time: '0.2180', + timeMs: 218, + completed: { + 'locate password input': { + time: '0.09900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 27 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 27 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input (29ms)', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: "password" (37ms)', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'locate password input': { + time: '0.09900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 27 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 27 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 99, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + } + }, + timeMs: 99, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + }, + 'fill in password input': { + time: '0.1190', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 17 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 17 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if value of element equals \'password\' (11ms)', + stackTrace: '', + fullMsg: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(11ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'locate password input': { + time: '0.09900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 27 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 27 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 99, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + }, + 'fill in password input': { + time: '0.1190', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 17 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 17 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(11ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(11ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 119, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + } + }, + timeMs: 119, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://archive.org/account/login' + ], + startTime: 1680776312360, + endTime: 1680776318569, + elapsedTime: 6209, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'locate password input': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776318572, + endTime: 1680776318600, + elapsedTime: 28, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.element', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776318601, + endTime: 1680776318630, + elapsedTime: 29, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776318630, + endTime: 1680776318668, + elapsedTime: 38, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'fill in password input': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'form.login-form' + ], + startTime: 1680776318672, + endTime: 1680776318689, + elapsedTime: 17, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'setValue', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})', + 'password' + ], + startTime: 1680776318689, + endTime: 1680776318775, + elapsedTime: 86, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.valueEquals', + args: [ + 'input[type=password]', + 'password' + ], + startTime: 1680776318775, + endTime: 1680776318787, + elapsedTime: 12, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + ], + startTime: 1680776318790, + endTime: 1680776318847, + elapsedTime: 57, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 2, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 5, + group: '', + modulePath: '/examples/tests/sample-with-relative-locators.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:30 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.JaFqwI' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52856' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '00dd2b665dc8d47d951758a8df6aab16', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/sample-with-relative-locators_chromedriver.log', + host: 'localhost', + tests: 2, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:30.901Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.353Z', + ' Response 200 POST /session (1454ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.JaFqwI'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52856' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '00dd2b665dc8d47d951758a8df6aab16'\n }\n }' + ], + [ + '2023-04-06T10:18:32.362Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/url ', + '{ url: 'https://archive.org/account/login' }' + ], + [ + '2023-04-06T10:18:38.567Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/url (6205ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.576Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.588Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (13ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.590Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04',\n ELEMENT: '9cd7b93b-d84a-4076-808d-69f133084e04'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.599Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.603Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.616Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (14ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.618Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name ', + '''' + ], + [ + '2023-04-06T10:18:38.629Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name (11ms)', + '{ value: 'input' }' + ], + [ + '2023-04-06T10:18:38.633Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.654Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (22ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.656Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type ', + 'undefined' + ], + [ + '2023-04-06T10:18:38.667Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type (12ms)', + '{ value: 'password' }' + ], + [ + '2023-04-06T10:18:38.673Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: 'css selector', value: 'form.login-form' }' + ], + [ + '2023-04-06T10:18:38.680Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (8ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8f46bd5c-745a-47f0-a218-d476c573a5cb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.682Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8f46bd5c-745a-47f0-a218-d476c573a5cb',\n ELEMENT: '8f46bd5c-745a-47f0-a218-d476c573a5cb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.689Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.691Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.697Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.698Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear ', + '{}' + ], + [ + '2023-04-06T10:18:38.713Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear (15ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.714Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value ', + '{\n text: 'password',\n value: [\n 'p', 'a', 's',\n 's', 'w', 'o',\n 'r', 'd'\n ]\n }' + ], + [ + '2023-04-06T10:18:38.774Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value (60ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.778Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: 'css selector', value: 'input[type=password]' }' + ], + [ + '2023-04-06T10:18:38.783Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.784Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value ', + '''' + ], + [ + '2023-04-06T10:18:38.786Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value (2ms)', + '{ value: 'password' }' + ], + [ + '2023-04-06T10:18:38.793Z', + ' Request DELETE /session/00dd2b665dc8d47d951758a8df6aab16 ', + '''' + ], + [ + '2023-04-06T10:18:38.846Z', + ' Response 200 DELETE /session/00dd2b665dc8d47d951758a8df6aab16 (53ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:30.901Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.353Z', + ' Response 200 POST /session (1454ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.JaFqwI\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52856\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'00dd2b665dc8d47d951758a8df6aab16\'\n }\n }' + ], + [ + '2023-04-06T10:18:32.362Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/url ', + '{ url: \'https://archive.org/account/login\' }' + ], + [ + '2023-04-06T10:18:38.567Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/url (6205ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.576Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.588Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (13ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.590Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\',\n ELEMENT: \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.599Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.603Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.616Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (14ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.618Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name ', + '\'\'' + ], + [ + '2023-04-06T10:18:38.629Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name (11ms)', + '{ value: \'input\' }' + ], + [ + '2023-04-06T10:18:38.633Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.654Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (22ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.656Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type ', + 'undefined' + ], + [ + '2023-04-06T10:18:38.667Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type (12ms)', + '{ value: \'password\' }' + ], + [ + '2023-04-06T10:18:38.673Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: \'css selector\', value: \'form.login-form\' }' + ], + [ + '2023-04-06T10:18:38.680Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (8ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8f46bd5c-745a-47f0-a218-d476c573a5cb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.682Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8f46bd5c-745a-47f0-a218-d476c573a5cb\',\n ELEMENT: \'8f46bd5c-745a-47f0-a218-d476c573a5cb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.689Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.691Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.697Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.698Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear ', + '{}' + ], + [ + '2023-04-06T10:18:38.713Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear (15ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.714Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value ', + '{\n text: \'password\',\n value: [\n \'p\', \'a\', \'s\',\n \'s\', \'w\', \'o\',\n \'r\', \'d\'\n ]\n }' + ], + [ + '2023-04-06T10:18:38.774Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value (60ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.778Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: \'css selector\', value: \'input[type=password]\' }' + ], + [ + '2023-04-06T10:18:38.783Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.784Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value ', + '\'\'' + ], + [ + '2023-04-06T10:18:38.786Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value (2ms)', + '{ value: \'password\' }' + ], + [ + '2023-04-06T10:18:38.793Z', + ' Request DELETE /session/00dd2b665dc8d47d951758a8df6aab16 ', + '\'\'' + ], + [ + '2023-04-06T10:18:38.846Z', + ' Response 200 DELETE /session/00dd2b665dc8d47d951758a8df6aab16 (53ms)', + '{ value: null }' + ] + ] + } + }, + modulesWithEnv: { + chrome: { + selectElement: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 1, + lastError: null, + skipped: [ + ], + time: '2.865', + timeMs: 2865, + completed: { + demoTest: { + time: '2.865', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Forth option is selected (130ms)', + stackTrace: '', + fullMsg: 'Forth option is selected \u001b[0;90m(130ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + tests: 1, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + demoTest: { + time: '2.865', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Forth option is selected \u001b[0;90m(130ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Forth option is selected \u001b[0;90m(130ms)\u001b[0m', + failure: false + } + ], + tests: 1, + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 2865, + startTimestamp: 'Thu, 06 Apr 2023 10:18:33 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT' + } + }, + timeMs: 2865, + startTimestamp: 'Thu, 06 Apr 2023 10:18:33 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + demoTest: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'url', + args: [ + 'https://www.selenium.dev/selenium/web/formPage.html' + ], + startTime: 1680776313720, + endTime: 1680776316325, + elapsedTime: 2605, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'element().getAttribute', + args: [ + 'tagName' + ], + startTime: 1680776316337, + endTime: 1680776316373, + elapsedTime: 36, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776316374, + endTime: 1680776316383, + elapsedTime: 9, + status: 'pass', + result: { + } + }, + { + name: 'perform', + args: [ + 'function () { [native code] }' + ], + startTime: 1680776316330, + endTime: 1680776316429, + elapsedTime: 99, + status: 'pass' + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776316429, + endTime: 1680776316439, + elapsedTime: 10, + status: 'pass', + result: { + } + }, + { + name: 'assert.selected', + args: [ + '[object Object]', + 'Forth option is selected' + ], + startTime: 1680776316440, + endTime: 1680776316579, + elapsedTime: 139, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776316589, + endTime: 1680776316663, + elapsedTime: 74, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 1, + group: '', + modulePath: '/examples/tests/selectElement.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.sR1HWF' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52889' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '94e5716f8bba3e2833067803902caa56', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/selectElement_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:31.939Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.711Z', + ' Response 200 POST /session (1771ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.sR1HWF'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52889' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '94e5716f8bba3e2833067803902caa56'\n }\n }' + ], + [ + '2023-04-06T10:18:33.723Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/url ', + '{ url: 'https://www.selenium.dev/selenium/web/formPage.html' }' + ], + [ + '2023-04-06T10:18:36.321Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/url (2598ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.340Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/elements ', + '{ using: 'css selector', value: 'select[name=selectomatic]' }' + ], + [ + '2023-04-06T10:18:36.357Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/elements (17ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '89d09eaa-d9de-4096-a147-e9b869129fc5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.359Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/execute/sync ', + '{\n script: 'return (function(){return (function(){var h=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=h;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (43188 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '89d09eaa-d9de-4096-a147-e9b869129fc5',\n ELEMENT: '89d09eaa-d9de-4096-a147-e9b869129fc5'\n },\n 'tagName'\n ]\n }' + ], + [ + '2023-04-06T10:18:36.372Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/execute/sync (13ms)', + '{ value: 'SELECT' }' + ], + [ + '2023-04-06T10:18:36.375Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element ', + '{\n using: 'xpath',\n value: './option[. = "Four"]|./option[normalize-space(text()) = "Four"]|./optgroup/option[. = "Four"]|./optgroup/option[normalize-space(text()) = "Four"]'\n }' + ], + [ + '2023-04-06T10:18:36.383Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element (8ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '5e26d261-54b0-4e9a-8896-4130d2dcb98f'\n }\n }' + ], + [ + '2023-04-06T10:18:36.384Z', + ' Request GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected ', + '''' + ], + [ + '2023-04-06T10:18:36.397Z', + ' Response 200 GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected (13ms)', + '{ value: false }' + ], + [ + '2023-04-06T10:18:36.399Z', + ' Request GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/enabled ', + '''' + ], + [ + '2023-04-06T10:18:36.407Z', + ' Response 200 GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/enabled (8ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:36.408Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/click ', + '{}' + ], + [ + '2023-04-06T10:18:36.428Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/click (20ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.431Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element ', + '{ using: 'css selector', value: 'option[value=four]' }' + ], + [ + '2023-04-06T10:18:36.439Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element (9ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '5e26d261-54b0-4e9a-8896-4130d2dcb98f'\n }\n }' + ], + [ + '2023-04-06T10:18:36.497Z', + ' Request GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected ', + '''' + ], + [ + '2023-04-06T10:18:36.570Z', + ' Response 200 GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected (73ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:36.594Z', + ' Request DELETE /session/94e5716f8bba3e2833067803902caa56 ', + '''' + ], + [ + '2023-04-06T10:18:36.653Z', + ' Response 200 DELETE /session/94e5716f8bba3e2833067803902caa56 (59ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:31.939Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.711Z', + ' Response 200 POST /session (1771ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.sR1HWF\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52889\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'94e5716f8bba3e2833067803902caa56\'\n }\n }' + ], + [ + '2023-04-06T10:18:33.723Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/url ', + '{ url: \'https://www.selenium.dev/selenium/web/formPage.html\' }' + ], + [ + '2023-04-06T10:18:36.321Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/url (2598ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.340Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/elements ', + '{ using: \'css selector\', value: \'select[name=selectomatic]\' }' + ], + [ + '2023-04-06T10:18:36.357Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/elements (17ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'89d09eaa-d9de-4096-a147-e9b869129fc5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.359Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/execute/sync ', + '{\n script: \'return (function(){return (function(){var h=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=h;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (43188 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'89d09eaa-d9de-4096-a147-e9b869129fc5\',\n ELEMENT: \'89d09eaa-d9de-4096-a147-e9b869129fc5\'\n },\n \'tagName\'\n ]\n }' + ], + [ + '2023-04-06T10:18:36.372Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/execute/sync (13ms)', + '{ value: \'SELECT\' }' + ], + [ + '2023-04-06T10:18:36.375Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element ', + '{\n using: \'xpath\',\n value: \'./option[. = "Four"]|./option[normalize-space(text()) = "Four"]|./optgroup/option[. = "Four"]|./optgroup/option[normalize-space(text()) = "Four"]\'\n }' + ], + [ + '2023-04-06T10:18:36.383Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element (8ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'5e26d261-54b0-4e9a-8896-4130d2dcb98f\'\n }\n }' + ], + [ + '2023-04-06T10:18:36.384Z', + ' Request GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.397Z', + ' Response 200 GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected (13ms)', + '{ value: false }' + ], + [ + '2023-04-06T10:18:36.399Z', + ' Request GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/enabled ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.407Z', + ' Response 200 GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/enabled (8ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:36.408Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/click ', + '{}' + ], + [ + '2023-04-06T10:18:36.428Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/click (20ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.431Z', + ' Request POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element ', + '{ using: \'css selector\', value: \'option[value=four]\' }' + ], + [ + '2023-04-06T10:18:36.439Z', + ' Response 200 POST /session/94e5716f8bba3e2833067803902caa56/element/89d09eaa-d9de-4096-a147-e9b869129fc5/element (9ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'5e26d261-54b0-4e9a-8896-4130d2dcb98f\'\n }\n }' + ], + [ + '2023-04-06T10:18:36.497Z', + ' Request GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.570Z', + ' Response 200 GET /session/94e5716f8bba3e2833067803902caa56/element/5e26d261-54b0-4e9a-8896-4130d2dcb98f/selected (73ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:36.594Z', + ' Request DELETE /session/94e5716f8bba3e2833067803902caa56 ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.653Z', + ' Response 200 DELETE /session/94e5716f8bba3e2833067803902caa56 (59ms)', + '{ value: null }' + ] + ] + }, + chromeCDP_example: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 1, + lastError: null, + skipped: [ + ], + time: '4.659', + timeMs: 4659, + completed: { + 'using CDP DOM Snapshot': { + time: '4.659', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Passed [deepStrictEqual]: [ \'documents\', \'strings\' ] deep strict equal [ \'documents\', \'strings\' ]', + stackTrace: '', + fullMsg: 'Passed [deepStrictEqual]: [ \'documents\', \'strings\' ] deep strict equal [ \'documents\', \'strings\' ]', + failure: false + } + ], + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + tests: 1, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'using CDP DOM Snapshot': { + time: '4.659', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Passed [deepStrictEqual]: [ \'documents\', \'strings\' ] deep strict equal [ \'documents\', \'strings\' ]', + stackTrace: '', + fullMsg: 'Passed [deepStrictEqual]: [ \'documents\', \'strings\' ] deep strict equal [ \'documents\', \'strings\' ]', + failure: false + } + ], + tests: 1, + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 4659, + startTimestamp: 'Thu, 06 Apr 2023 10:18:32 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT' + } + }, + timeMs: 4659, + startTimestamp: 'Thu, 06 Apr 2023 10:18:32 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'using CDP DOM Snapshot': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://nightwatchjs.org' + ], + startTime: 1680776312030, + endTime: 1680776316532, + elapsedTime: 4502, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'chrome.sendAndGetDevToolsCommand', + args: [ + 'DOMSnapshot.captureSnapshot', + '[object Object]' + ], + startTime: 1680776316535, + endTime: 1680776316678, + elapsedTime: 143, + status: 'pass', + result: { + } + }, + { + name: 'assert.deepStrictEqual', + args: [ + ], + startTime: 1680776316682, + endTime: 1680776316683, + elapsedTime: 1, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776316691, + endTime: 1680776316763, + elapsedTime: 72, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 1, + group: '', + modulePath: '/examples/tests/chromeCDP_example.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:30 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.skcAKm' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52846' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '763e49ab4471f28def3e033fb0d643bd', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/chromeCDP_example_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:30.487Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.015Z', + ' Response 200 POST /session (1530ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.skcAKm'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52846' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '763e49ab4471f28def3e033fb0d643bd'\n }\n }' + ], + [ + '2023-04-06T10:18:32.056Z', + ' Request POST /session/763e49ab4471f28def3e033fb0d643bd/url ', + '{ url: 'https://nightwatchjs.org' }' + ], + [ + '2023-04-06T10:18:36.529Z', + ' Response 200 POST /session/763e49ab4471f28def3e033fb0d643bd/url (4475ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.537Z', + ' Request POST /session/763e49ab4471f28def3e033fb0d643bd/chromium/send_command_and_get_result ', + '{ cmd: 'DOMSnapshot.captureSnapshot', params: { computedStyles: [] } }' + ], + [ + '2023-04-06T10:18:36.666Z', + ' Response 200 POST /session/763e49ab4471f28def3e033fb0d643bd/chromium/send_command_and_get_result (112ms)', + '{\n value: {\n documents: [\n {\n baseURL: 0,\n contentHeight: 3974,\n contentLanguage: -1,\n contentWidth: 1185,\n documentURL: 0,\n encodingName: 2,\n frameId: 3,\n layout: {\n bounds: [Array],\n nodeIndex: [Array],\n stackingContexts: [Object],\n styles: [Array],\n text: [Array]\n },\n nodes: {\n attributes: [Array],\n backendNodeId: [Array],\n contentDocumentIndex: [Object],\n currentSourceURL: [Object],\n inputChecked: [Object],\n inputValue: [Object],\n isClickable: [Object],\n nodeName: [Array],\n nodeType: [Array],\n nodeValue: [Array],\n optionSelected: [Object],\n originURL: [Object],\n parentIndex: [Array],\n pseudoIdentifier: [Object],\n pseudoType: [Object],\n shadowRootType: [Object],\n textValue: [Object]\n },\n publicId: -1,\n scrollOffsetX: 0,\n scrollOffsetY: 0,\n systemId: -1,\n textBoxes: {\n bounds: [Array],\n layoutIndex: [Array],\n length: [Array],\n start: [Array]\n },\n title: 1\n },\n {\n baseURL: 0,\n contentHeight: 125,\n contentLanguage: -1,\n contentWidth: 275,\n documentURL: 695,\n encodingName: 2,\n frameId: 696,\n layout: {\n bounds: [Array],\n nodeIndex: [Array],\n stackingContexts: [Object],\n styles: [Array],\n text: [Array]\n },\n nodes: {\n attributes: [Array],\n backendNodeId: [Array],\n contentDocumentIndex: [Object],\n currentSourceURL: [Object],\n inputChecked: [Object],\n inputValue: [Object],\n isClickable: [Object],\n nodeName: [Array],\n nodeType: [Array],\n nodeValue: [Array],\n optionSelected: [Object],\n originURL: [Object],\n parentIndex: [Array],\n pseudoIdentifier: [Object],\n pseudoType: [Object],\n shadowRootType: [Object],\n textValue: [Object]\n },\n publicId: -1,\n scrollOffsetX: 0,\n scrollOffsetY: 0,\n systemId: -1,\n textBoxes: { bounds: [], layoutIndex: [], length: [], start: [] },\n title: -1\n }\n ],\n strings: [\n 'https://nightwatchjs.org/',\n 'Nightwatch.js | Node.js powered End-to-End testing framework',\n 'UTF-8',\n '5C751C5A821E5E78F3EBEACD0F8DB3AE',\n '#document',\n 'html',\n 'HTML',\n 'lang',\n 'en',\n 'data-uri',\n '/',\n 'HEAD',\n '#text',\n '\\n ',\n 'META',\n 'charset',\n 'utf-8',\n '\\n',\n 'TITLE',\n 'name',\n 'description',\n 'content',\n 'Write efficient end-to-end tests in Node.js and run them against W3C WebDriver.',\n 'http-equiv',\n 'X-UA-Compatible',\n 'IE=edge',\n 'viewport',\n 'width=device-width, initial-scale=1, shrink-to-fit=no',\n '\\n\\n',\n 'property',\n 'og:title',\n 'Nightwatch.js | Node.js powered End-to-End testing framework',\n 'og:image',\n '/img/banners/nightwatch.jpg',\n 'og:site_name',\n 'Nightwatch.js',\n 'og:type',\n 'website',\n 'og:description',\n 'og:url',\n 'twitter:title',\n 'twitter:description',\n 'twitter:image',\n 'twitter:card',\n 'summary_large_image',\n 'twitter:site',\n '@nightwatchjs',\n 'twitter:creator',\n 'referrer',\n 'no-referrer-when-downgrade',\n 'google-site-verification',\n 'LGNZ66nvi-gru5DR_bV3jry2hqvlMoijhdWZkVT41ZM',\n 'docsearch:language',\n 'docsearch:version',\n '1.0.0',\n 'LINK',\n 'rel',\n 'preconnect',\n 'href',\n 'https://fonts.googleapis.com',\n 'https://fonts.gstatic.com',\n 'crossorigin',\n 'SCRIPT',\n 'type',\n 'text/javascript',\n 'async',\n 'src',\n 'https://www.googletagmanager.com/gtag/js?id=G-NJ5GYXJRCQ&l=dataLayer&cx=c',\n '(function(p,h) {\\n' +\n " p=p.replace(/\\\\/api\\\\/.+\\\\.html$/,'/api/$method');\\n" +\n " p=p.replace(/\\\\/blog\\\\/.+\\\\.html$/,'/blog/article');\\n" +\n " var q = p.split('/'); q.shift();\\n" +\n " h.setAttribute('data-uri',(p!='/'?'/'+q.join('/'):p));\\n" +\n '})(location.pathname,document.documentElement);\\n',\n "\\n document.domain = 'nightwatchjs.org';\\n",\n '/css/themes/prism.css',\n 'stylesheet',\n 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css',\n 'integrity',\n 'sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3',\n 'anonymous',\n '/css/main.css?v=1103522931',\n '/css/sidebar.css?v=1103521931',\n '/css/style.css?v=1103620931',\n '/css/mobile.css',\n '/css/docsearch.css',\n 'https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap',\n 'data-tag',\n 'font',\n 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&display=swap',\n 'https://fonts.googleapis.com/css2?family=Spartan:wght@500;600;700&display=swap',\n '/css/style1.css?v=1103620931',\n '/css/desktop.css?v=1103620931',\n '/css/tablet.css?v=1103620931',\n '/css/mobile1.css?v=1103620931',\n '//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',\n 'https://unpkg.com/@stackblitz/sdk@1.8.2/bundles/sdk.umd.js',\n '#comment',\n ' Adding synchronous VWO snippet to prevent flickering issue ',\n 'https://dev.visualwebsiteoptimizer.com/lib/366135.js',\n 'id',\n 'vwoCode',\n 'onerror',\n 'window.vwoSyncTpcFailed=true',\n 'https://dev.visualwebsiteoptimizer.com/tpc?a=366135&r=0.7714095575006725',\n ... 597 more items\n ]\n }\n }' + ], + [ + '2023-04-06T10:18:36.696Z', + ' Request DELETE /session/763e49ab4471f28def3e033fb0d643bd ', + '''' + ], + [ + '2023-04-06T10:18:36.756Z', + ' Response 200 DELETE /session/763e49ab4471f28def3e033fb0d643bd (59ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:30.487Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.015Z', + ' Response 200 POST /session (1530ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.skcAKm\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52846\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'763e49ab4471f28def3e033fb0d643bd\'\n }\n }' + ], + [ + '2023-04-06T10:18:32.056Z', + ' Request POST /session/763e49ab4471f28def3e033fb0d643bd/url ', + '{ url: \'https://nightwatchjs.org\' }' + ], + [ + '2023-04-06T10:18:36.529Z', + ' Response 200 POST /session/763e49ab4471f28def3e033fb0d643bd/url (4475ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.537Z', + ' Request POST /session/763e49ab4471f28def3e033fb0d643bd/chromium/send_command_and_get_result ', + '{ cmd: \'DOMSnapshot.captureSnapshot\', params: { computedStyles: [] } }' + ], + [ + '2023-04-06T10:18:36.666Z', + ' Response 200 POST /session/763e49ab4471f28def3e033fb0d643bd/chromium/send_command_and_get_result (112ms)', + '{\n value: {\n documents: [\n {\n baseURL: 0,\n contentHeight: 3974,\n contentLanguage: -1,\n contentWidth: 1185,\n documentURL: 0,\n encodingName: 2,\n frameId: 3,\n layout: {\n bounds: [Array],\n nodeIndex: [Array],\n stackingContexts: [Object],\n styles: [Array],\n text: [Array]\n },\n nodes: {\n attributes: [Array],\n backendNodeId: [Array],\n contentDocumentIndex: [Object],\n currentSourceURL: [Object],\n inputChecked: [Object],\n inputValue: [Object],\n isClickable: [Object],\n nodeName: [Array],\n nodeType: [Array],\n nodeValue: [Array],\n optionSelected: [Object],\n originURL: [Object],\n parentIndex: [Array],\n pseudoIdentifier: [Object],\n pseudoType: [Object],\n shadowRootType: [Object],\n textValue: [Object]\n },\n publicId: -1,\n scrollOffsetX: 0,\n scrollOffsetY: 0,\n systemId: -1,\n textBoxes: {\n bounds: [Array],\n layoutIndex: [Array],\n length: [Array],\n start: [Array]\n },\n title: 1\n },\n {\n baseURL: 0,\n contentHeight: 125,\n contentLanguage: -1,\n contentWidth: 275,\n documentURL: 695,\n encodingName: 2,\n frameId: 696,\n layout: {\n bounds: [Array],\n nodeIndex: [Array],\n stackingContexts: [Object],\n styles: [Array],\n text: [Array]\n },\n nodes: {\n attributes: [Array],\n backendNodeId: [Array],\n contentDocumentIndex: [Object],\n currentSourceURL: [Object],\n inputChecked: [Object],\n inputValue: [Object],\n isClickable: [Object],\n nodeName: [Array],\n nodeType: [Array],\n nodeValue: [Array],\n optionSelected: [Object],\n originURL: [Object],\n parentIndex: [Array],\n pseudoIdentifier: [Object],\n pseudoType: [Object],\n shadowRootType: [Object],\n textValue: [Object]\n },\n publicId: -1,\n scrollOffsetX: 0,\n scrollOffsetY: 0,\n systemId: -1,\n textBoxes: { bounds: [], layoutIndex: [], length: [], start: [] },\n title: -1\n }\n ],\n strings: [\n \'https://nightwatchjs.org/\',\n \'Nightwatch.js | Node.js powered End-to-End testing framework\',\n \'UTF-8\',\n \'5C751C5A821E5E78F3EBEACD0F8DB3AE\',\n \'#document\',\n \'html\',\n \'HTML\',\n \'lang\',\n \'en\',\n \'data-uri\',\n \'/\',\n \'HEAD\',\n \'#text\',\n \'\\n \',\n \'META\',\n \'charset\',\n \'utf-8\',\n \'\\n\',\n \'TITLE\',\n \'name\',\n \'description\',\n \'content\',\n \'Write efficient end-to-end tests in Node.js and run them against W3C WebDriver.\',\n \'http-equiv\',\n \'X-UA-Compatible\',\n \'IE=edge\',\n \'viewport\',\n \'width=device-width, initial-scale=1, shrink-to-fit=no\',\n \'\\n\\n\',\n \'property\',\n \'og:title\',\n \'Nightwatch.js | Node.js powered End-to-End testing framework\',\n \'og:image\',\n \'/img/banners/nightwatch.jpg\',\n \'og:site_name\',\n \'Nightwatch.js\',\n \'og:type\',\n \'website\',\n \'og:description\',\n \'og:url\',\n \'twitter:title\',\n \'twitter:description\',\n \'twitter:image\',\n \'twitter:card\',\n \'summary_large_image\',\n \'twitter:site\',\n \'@nightwatchjs\',\n \'twitter:creator\',\n \'referrer\',\n \'no-referrer-when-downgrade\',\n \'google-site-verification\',\n \'LGNZ66nvi-gru5DR_bV3jry2hqvlMoijhdWZkVT41ZM\',\n \'docsearch:language\',\n \'docsearch:version\',\n \'1.0.0\',\n \'LINK\',\n \'rel\',\n \'preconnect\',\n \'href\',\n \'https://fonts.googleapis.com\',\n \'https://fonts.gstatic.com\',\n \'crossorigin\',\n \'SCRIPT\',\n \'type\',\n \'text/javascript\',\n \'async\',\n \'src\',\n \'https://www.googletagmanager.com/gtag/js?id=G-NJ5GYXJRCQ&l=dataLayer&cx=c\',\n \'(function(p,h) {\\n\' +\n " p=p.replace(/\\\\/api\\\\/.+\\\\.html$/,\'/api/$method\');\\n" +\n " p=p.replace(/\\\\/blog\\\\/.+\\\\.html$/,\'/blog/article\');\\n" +\n " var q = p.split(\'/\'); q.shift();\\n" +\n " h.setAttribute(\'data-uri\',(p!=\'/\'?\'/\'+q.join(\'/\'):p));\\n" +\n \'})(location.pathname,document.documentElement);\\n\',\n "\\n document.domain = \'nightwatchjs.org\';\\n",\n \'/css/themes/prism.css\',\n \'stylesheet\',\n \'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css\',\n \'integrity\',\n \'sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3\',\n \'anonymous\',\n \'/css/main.css?v=1103522931\',\n \'/css/sidebar.css?v=1103521931\',\n \'/css/style.css?v=1103620931\',\n \'/css/mobile.css\',\n \'/css/docsearch.css\',\n \'https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700;1,900&display=swap\',\n \'data-tag\',\n \'font\',\n \'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&display=swap\',\n \'https://fonts.googleapis.com/css2?family=Spartan:wght@500;600;700&display=swap\',\n \'/css/style1.css?v=1103620931\',\n \'/css/desktop.css?v=1103620931\',\n \'/css/tablet.css?v=1103620931\',\n \'/css/mobile1.css?v=1103620931\',\n \'//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\',\n \'https://unpkg.com/@stackblitz/sdk@1.8.2/bundles/sdk.umd.js\',\n \'#comment\',\n \' Adding synchronous VWO snippet to prevent flickering issue \',\n \'https://dev.visualwebsiteoptimizer.com/lib/366135.js\',\n \'id\',\n \'vwoCode\',\n \'onerror\',\n \'window.vwoSyncTpcFailed=true\',\n \'https://dev.visualwebsiteoptimizer.com/tpc?a=366135&r=0.7714095575006725\',\n ... 597 more items\n ]\n }\n }' + ], + [ + '2023-04-06T10:18:36.696Z', + ' Request DELETE /session/763e49ab4471f28def3e033fb0d643bd ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.756Z', + ' Response 200 DELETE /session/763e49ab4471f28def3e033fb0d643bd (59ms)', + '{ value: null }' + ] + ] + }, + angularTodoTest: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 2, + lastError: null, + skipped: [ + ], + time: '3.868', + timeMs: 3868, + completed: { + 'should add a todo using custom commands': { + time: '3.868', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected element text to equal: "what is nightwatch?" (14ms)', + stackTrace: '', + fullMsg: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (14ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <*[module=todoApp] li .done-true> count to equal: "2" (11ms)', + stackTrace: '', + fullMsg: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (11ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should add a todo using custom commands': { + time: '3.868', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (14ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (14ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (11ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (11ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 3868, + startTimestamp: 'Thu, 06 Apr 2023 10:18:32 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT' + } + }, + timeMs: 3868, + startTimestamp: 'Thu, 06 Apr 2023 10:18:32 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should add a todo using custom commands': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://angularjs.org' + ], + startTime: 1680776312935, + endTime: 1680776315920, + elapsedTime: 2985, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + '[ng-model="todoList.todoText"]', + 'what is nightwatch?' + ], + startTime: 1680776315922, + endTime: 1680776316268, + elapsedTime: 346, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + '[value="add"]' + ], + startTime: 1680776316269, + endTime: 1680776316537, + elapsedTime: 268, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'getElementsInList', + args: [ + 'todoList.todos' + ], + startTime: 1680776316537, + endTime: 1680776316724, + elapsedTime: 187, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + 'web element{eb6ac9cd-78c6-4755-befd-add49d3d25f4}' + ], + startTime: 1680776316730, + endTime: 1680776316744, + elapsedTime: 14, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776316745, + endTime: 1680776316759, + elapsedTime: 14, + status: 'pass', + result: { + } + }, + { + name: 'click', + args: [ + '[object Object]' + ], + startTime: 1680776316761, + endTime: 1680776316784, + elapsedTime: 23, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '*[module=todoApp] li .done-true' + ], + startTime: 1680776316785, + endTime: 1680776316797, + elapsedTime: 12, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776316804, + endTime: 1680776316866, + elapsedTime: 62, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 2, + group: '', + modulePath: '/examples/tests/angularTodoTest.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:36 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.M6WcDk' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52862' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: 'e5d3ec370d703ed8b3e183646feca185', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/angularTodoTest_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:31.172Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.923Z', + ' Response 200 POST /session (1754ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.M6WcDk'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52862' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: 'e5d3ec370d703ed8b3e183646feca185'\n }\n }' + ], + [ + '2023-04-06T10:18:32.937Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/url ', + '{ url: 'https://angularjs.org' }' + ], + [ + '2023-04-06T10:18:35.916Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/url (2979ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:35.934Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/elements ', + '{ using: 'css selector', value: '[ng-model="todoList.todoText"]' }' + ], + [ + '2023-04-06T10:18:36.081Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/elements (149ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'c50fa868-aafd-473a-a56c-95ffaf96d2cf'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.084Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/c50fa868-aafd-473a-a56c-95ffaf96d2cf/value ', + '{\n text: 'what is nightwatch?',\n value: [\n 'w', 'h', 'a', 't', ' ',\n 'i', 's', ' ', 'n', 'i',\n 'g', 'h', 't', 'w', 'a',\n 't', 'c', 'h', '?'\n ]\n }' + ], + [ + '2023-04-06T10:18:36.267Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/c50fa868-aafd-473a-a56c-95ffaf96d2cf/value (184ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.271Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/elements ', + '{ using: 'css selector', value: '[value="add"]' }' + ], + [ + '2023-04-06T10:18:36.287Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/elements (17ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '525d123b-4f69-4d7b-ab2b-003108e17304'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.290Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/525d123b-4f69-4d7b-ab2b-003108e17304/click ', + '{}' + ], + [ + '2023-04-06T10:18:36.536Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/525d123b-4f69-4d7b-ab2b-003108e17304/click (246ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.540Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/execute/sync ', + '{\n script: 'var passedArgs = Array.prototype.slice.call(arguments,0); return (function(listName) {\\n' +\n ' // executed in the browser context\\n' +\n ' // eslint-disable-next-line\\n' +\n ' var elements = document.querySel... (366 characters)',\n args: [ 'todoList.todos' ]\n }' + ], + [ + '2023-04-06T10:18:36.723Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/execute/sync (183ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2e22efb9-0a46-4516-81b0-a993c7c989f3'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '4f63fa26-dfdc-45c1-97a0-15dc316f826d'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'eb6ac9cd-78c6-4755-befd-add49d3d25f4'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.732Z', + ' Request GET /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/text ', + '''' + ], + [ + '2023-04-06T10:18:36.742Z', + ' Response 200 GET /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/text (11ms)', + '{ value: 'what is nightwatch?' }' + ], + [ + '2023-04-06T10:18:36.746Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/element ', + '{ using: 'css selector', value: 'input' }' + ], + [ + '2023-04-06T10:18:36.758Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/element (12ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': 'e8e3ad00-c40d-454a-b04c-c8f8480f1cc9'\n }\n }' + ], + [ + '2023-04-06T10:18:36.762Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/e8e3ad00-c40d-454a-b04c-c8f8480f1cc9/click ', + '{}' + ], + [ + '2023-04-06T10:18:36.784Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/e8e3ad00-c40d-454a-b04c-c8f8480f1cc9/click (22ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.786Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/elements ', + '{ using: 'css selector', value: '*[module=todoApp] li .done-true' }' + ], + [ + '2023-04-06T10:18:36.796Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/elements (10ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed8be05e-d30f-41c0-abc9-de5cf301c122'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '53da4b20-ed6f-47f0-ad0f-fd48a68edfe7'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.808Z', + ' Request DELETE /session/e5d3ec370d703ed8b3e183646feca185 ', + '''' + ], + [ + '2023-04-06T10:18:36.863Z', + ' Response 200 DELETE /session/e5d3ec370d703ed8b3e183646feca185 (55ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:31.172Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.923Z', + ' Response 200 POST /session (1754ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.M6WcDk\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52862\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'e5d3ec370d703ed8b3e183646feca185\'\n }\n }' + ], + [ + '2023-04-06T10:18:32.937Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/url ', + '{ url: \'https://angularjs.org\' }' + ], + [ + '2023-04-06T10:18:35.916Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/url (2979ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:35.934Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/elements ', + '{ using: \'css selector\', value: \'[ng-model="todoList.todoText"]\' }' + ], + [ + '2023-04-06T10:18:36.081Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/elements (149ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'c50fa868-aafd-473a-a56c-95ffaf96d2cf\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.084Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/c50fa868-aafd-473a-a56c-95ffaf96d2cf/value ', + '{\n text: \'what is nightwatch?\',\n value: [\n \'w\', \'h\', \'a\', \'t\', \' \',\n \'i\', \'s\', \' \', \'n\', \'i\',\n \'g\', \'h\', \'t\', \'w\', \'a\',\n \'t\', \'c\', \'h\', \'?\'\n ]\n }' + ], + [ + '2023-04-06T10:18:36.267Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/c50fa868-aafd-473a-a56c-95ffaf96d2cf/value (184ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.271Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/elements ', + '{ using: \'css selector\', value: \'[value="add"]\' }' + ], + [ + '2023-04-06T10:18:36.287Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/elements (17ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'525d123b-4f69-4d7b-ab2b-003108e17304\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.290Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/525d123b-4f69-4d7b-ab2b-003108e17304/click ', + '{}' + ], + [ + '2023-04-06T10:18:36.536Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/525d123b-4f69-4d7b-ab2b-003108e17304/click (246ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.540Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/execute/sync ', + '{\n script: \'var passedArgs = Array.prototype.slice.call(arguments,0); return (function(listName) {\\n\' +\n \' // executed in the browser context\\n\' +\n \' // eslint-disable-next-line\\n\' +\n \' var elements = document.querySel... (366 characters)\',\n args: [ \'todoList.todos\' ]\n }' + ], + [ + '2023-04-06T10:18:36.723Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/execute/sync (183ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2e22efb9-0a46-4516-81b0-a993c7c989f3\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'4f63fa26-dfdc-45c1-97a0-15dc316f826d\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'eb6ac9cd-78c6-4755-befd-add49d3d25f4\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.732Z', + ' Request GET /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/text ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.742Z', + ' Response 200 GET /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/text (11ms)', + '{ value: \'what is nightwatch?\' }' + ], + [ + '2023-04-06T10:18:36.746Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/element ', + '{ using: \'css selector\', value: \'input\' }' + ], + [ + '2023-04-06T10:18:36.758Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/eb6ac9cd-78c6-4755-befd-add49d3d25f4/element (12ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'e8e3ad00-c40d-454a-b04c-c8f8480f1cc9\'\n }\n }' + ], + [ + '2023-04-06T10:18:36.762Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/element/e8e3ad00-c40d-454a-b04c-c8f8480f1cc9/click ', + '{}' + ], + [ + '2023-04-06T10:18:36.784Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/element/e8e3ad00-c40d-454a-b04c-c8f8480f1cc9/click (22ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:36.786Z', + ' Request POST /session/e5d3ec370d703ed8b3e183646feca185/elements ', + '{ using: \'css selector\', value: \'*[module=todoApp] li .done-true\' }' + ], + [ + '2023-04-06T10:18:36.796Z', + ' Response 200 POST /session/e5d3ec370d703ed8b3e183646feca185/elements (10ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed8be05e-d30f-41c0-abc9-de5cf301c122\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'53da4b20-ed6f-47f0-ad0f-fd48a68edfe7\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:36.808Z', + ' Request DELETE /session/e5d3ec370d703ed8b3e183646feca185 ', + '\'\'' + ], + [ + '2023-04-06T10:18:36.863Z', + ' Response 200 DELETE /session/e5d3ec370d703ed8b3e183646feca185 (55ms)', + '{ value: null }' + ] + ] + }, + duckDuckGo: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 1, + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5108ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + skipped: [ + ], + time: '8.932', + timeMs: 8932, + completed: { + 'Search Nightwatch.js and check results': { + time: '8.932', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5108ms)', + stackTrace: ' at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + fullMsg: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5108ms)\u001b[0m', + failure: 'Expected "visible" but got: "not found"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154840-GMT+0530.png' + ] + } + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + tests: 1, + status: 'fail', + steps: [ + ], + stackTrace: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + testcases: { + 'Search Nightwatch.js and check results': { + time: '8.932', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5108ms)\u001b[0m', + stackTrace: ' at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + fullMsg: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5108ms)\u001b[0m', + failure: 'Expected "visible" but got: "not found"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154840-GMT+0530.png' + ] + } + ], + tests: 1, + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + status: 'fail', + steps: [ + ], + stackTrace: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5108ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + timeMs: 8932, + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT' + } + }, + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5108ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + timeMs: 8932, + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'Search Nightwatch.js and check results': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://duckduckgo.com' + ], + startTime: 1680776311602, + endTime: 1680776315235, + elapsedTime: 3633, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + '#search_form_input_homepage' + ], + startTime: 1680776315238, + endTime: 1680776320353, + elapsedTime: 5115, + status: 'fail', + result: { + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5108ms)', + showDiff: false, + name: 'NightwatchAssertError', + abortOnFailure: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js', + error_line_number: 8, + codeSnippet: [ + { + line_number: 6, + code: ' browser' + }, + { + line_number: 7, + code: ' .navigateTo(\'https://duckduckgo.com\')' + }, + { + line_number: 8, + code: ' .waitForElementVisible(\'#search_form_input_homepage\')' + }, + { + line_number: 9, + code: ' .sendKeys(\'#search_form_input_homepage\', [\'Nightwatch.js\'])' + }, + { + line_number: 10, + code: ' .click(\'#search_button_homepage\')' + } + ] + } + }, + screenshot: '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154840-GMT+0530.png' + }, + { + name: 'saveScreenshot', + args: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154840-GMT+0530.png', + 'function () { [native code] }' + ], + startTime: 1680776320407, + endTime: 1680776320529, + elapsedTime: 122, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'fail' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776320533, + endTime: 1680776320599, + elapsedTime: 66, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 1, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/examples/tests/duckDuckGo.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:29 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.91vxAl' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52839' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '9a61f4d0e9b27287c69a1932a5ce9f29', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'fail', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/duckDuckGo_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 1, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:29.971Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:31.594Z', + ' Response 200 POST /session (1624ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.91vxAl'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52839' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '9a61f4d0e9b27287c69a1932a5ce9f29'\n }\n }' + ], + [ + '2023-04-06T10:18:31.604Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/url ', + '{ url: 'https://duckduckgo.com' }' + ], + [ + '2023-04-06T10:18:35.227Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/url (3624ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:35.251Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:35.282Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (33ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:35.785Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:35.789Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:36.292Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:36.297Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:36.800Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:36.804Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:37.305Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:37.309Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:37.812Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:37.818Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.321Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:38.326Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.828Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:38.833Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.335Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:39.339Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.839Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:39.844Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.346Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:18:40.350Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.410Z', + ' Request GET /session/9a61f4d0e9b27287c69a1932a5ce9f29/screenshot ', + '''' + ], + [ + '2023-04-06T10:18:40.526Z', + ' Response 200 GET /session/9a61f4d0e9b27287c69a1932a5ce9f29/screenshot (110ms)', + '{\n value: 'iVBORw0KGgoAAAANSUhEUgAABLAAAAN3CAYAAAAia6NNAAABKGlDQ1BTa2lhAAAokX2QPUvDUBSGH0sX0aGiooNDNruo/bDVQpcm...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:40.535Z', + ' Request DELETE /session/9a61f4d0e9b27287c69a1932a5ce9f29 ', + '''' + ], + [ + '2023-04-06T10:18:40.596Z', + ' Response 200 DELETE /session/9a61f4d0e9b27287c69a1932a5ce9f29 (60ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:29.971Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:31.594Z', + ' Response 200 POST /session (1624ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.91vxAl\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52839\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'9a61f4d0e9b27287c69a1932a5ce9f29\'\n }\n }' + ], + [ + '2023-04-06T10:18:31.604Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/url ', + '{ url: \'https://duckduckgo.com\' }' + ], + [ + '2023-04-06T10:18:35.227Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/url (3624ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:35.251Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:35.282Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (33ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:35.785Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:35.789Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:36.292Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:36.297Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:36.800Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:36.804Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:37.305Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:37.309Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:37.812Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:37.818Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.321Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:38.326Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.828Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:38.833Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.335Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:39.339Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.839Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:39.844Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.346Z', + ' Request POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:18:40.350Z', + ' Response 200 POST /session/9a61f4d0e9b27287c69a1932a5ce9f29/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.410Z', + ' Request GET /session/9a61f4d0e9b27287c69a1932a5ce9f29/screenshot ', + '\'\'' + ], + [ + '2023-04-06T10:18:40.526Z', + ' Response 200 GET /session/9a61f4d0e9b27287c69a1932a5ce9f29/screenshot (110ms)', + '{\n value: \'iVBORw0KGgoAAAANSUhEUgAABLAAAAN3CAYAAAAia6NNAAABKGlDQ1BTa2lhAAAokX2QPUvDUBSGH0sX0aGiooNDNruo/bDVQpcm...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:40.535Z', + ' Request DELETE /session/9a61f4d0e9b27287c69a1932a5ce9f29 ', + '\'\'' + ], + [ + '2023-04-06T10:18:40.596Z', + ' Response 200 DELETE /session/9a61f4d0e9b27287c69a1932a5ce9f29 (60ms)', + '{ value: null }' + ] + ] + }, + googlePageObject: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 0, + lastError: null, + skipped: [ + ], + time: '5.086', + timeMs: 5086, + completed: { + 'should complete the consent form': { + time: '5.086', + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should complete the consent form': { + time: '5.086', + assertions: [ + ], + tests: 0, + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 5086, + startTimestamp: 'Thu, 06 Apr 2023 10:18:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:42 GMT' + } + }, + timeMs: 5086, + startTimestamp: 'Thu, 06 Apr 2023 10:18:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:42 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'url', + args: [ + 'https://google.no', + null + ], + startTime: 1680776313471, + endTime: 1680776317554, + elapsedTime: 4083, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should complete the consent form': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'isPresent', + args: [ + 'Element [name=@consentModal]' + ], + startTime: 1680776317560, + endTime: 1680776322642, + elapsedTime: 5082, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'quit', + args: [ + ], + startTime: 1680776322643, + endTime: 1680776322701, + elapsedTime: 58, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/examples/tests/googlePageObject.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:42 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.39FoXo' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52882' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '95004e1d90a7d381a02021ba1160569b', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'skip', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/googlePageObject_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:31.838Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.459Z', + ' Response 200 POST /session (1623ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.39FoXo'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52882' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '95004e1d90a7d381a02021ba1160569b'\n }\n }' + ], + [ + '2023-04-06T10:18:33.475Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/url ', + '{ url: 'https://google.no' }' + ], + [ + '2023-04-06T10:18:37.553Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/url (4079ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.563Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:37.571Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (9ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.074Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:38.081Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.583Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:38.588Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.091Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:39.096Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.598Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:39.603Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.105Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:40.108Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.611Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:40.615Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.117Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:41.122Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.624Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:41.628Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.130Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:42.134Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.635Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: 'css selector', value: '[aria-modal="true"]' }' + ], + [ + '2023-04-06T10:18:42.640Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.644Z', + ' Request DELETE /session/95004e1d90a7d381a02021ba1160569b ', + '''' + ], + [ + '2023-04-06T10:18:42.700Z', + ' Response 200 DELETE /session/95004e1d90a7d381a02021ba1160569b (56ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:31.838Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.459Z', + ' Response 200 POST /session (1623ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.39FoXo\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52882\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'95004e1d90a7d381a02021ba1160569b\'\n }\n }' + ], + [ + '2023-04-06T10:18:33.475Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/url ', + '{ url: \'https://google.no\' }' + ], + [ + '2023-04-06T10:18:37.553Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/url (4079ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.563Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:37.571Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (9ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.074Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:38.081Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.583Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:38.588Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.091Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:39.096Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.598Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:39.603Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.105Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:40.108Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.611Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:40.615Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.117Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:41.122Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.624Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:41.628Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.130Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:42.134Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.635Z', + ' Request POST /session/95004e1d90a7d381a02021ba1160569b/elements ', + '{ using: \'css selector\', value: \'[aria-modal="true"]\' }' + ], + [ + '2023-04-06T10:18:42.640Z', + ' Response 200 POST /session/95004e1d90a7d381a02021ba1160569b/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.644Z', + ' Request DELETE /session/95004e1d90a7d381a02021ba1160569b ', + '\'\'' + ], + [ + '2023-04-06T10:18:42.700Z', + ' Response 200 DELETE /session/95004e1d90a7d381a02021ba1160569b (56ms)', + '{ value: null }' + ] + ] + }, + google: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 2, + lastError: null, + skipped: [ + ], + time: '49.04', + timeMs: 49044, + completed: { + 'demo test using expect apis': { + time: '49.04', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 15 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 15 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element <#rso>:first-child> contains text \'Nightwatch.js\' (25ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(25ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'demo test using expect apis': { + time: '49.04', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 15 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 15 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(25ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(25ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 49044, + startTimestamp: 'Thu, 06 Apr 2023 10:18:32 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:22 GMT' + } + }, + timeMs: 49044, + startTimestamp: 'Thu, 06 Apr 2023 10:18:32 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:22 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'demo test using expect apis': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'http://google.no' + ], + startTime: 1680776312974, + endTime: 1680776317572, + elapsedTime: 4598, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'isPresent', + args: [ + '[aria-modal="true"][title="Before you continue to Google Search"]' + ], + startTime: 1680776317575, + endTime: 1680776322707, + elapsedTime: 5132, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + 'form[action="/search"] input[type=text]' + ], + startTime: 1680776322708, + endTime: 1680776322723, + elapsedTime: 15, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + 'form[action="/search"] input[type=text]', + 'Nightwatch.js,' + ], + startTime: 1680776322723, + endTime: 1680776327243, + elapsedTime: 4520, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.textContains', + args: [ + '#rso>:first-child', + 'Nightwatch.js' + ], + startTime: 1680776327243, + endTime: 1680776327271, + elapsedTime: 28, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'end', + args: [ + ], + startTime: 1680776327271, + endTime: 1680776327331, + elapsedTime: 60, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 2, + group: '', + modulePath: '/examples/tests/google.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:30 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:22 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.IYBK05' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52863' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '6d93a1410a8c1cb1a3ebd1ab9772b5bb', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:31.040Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.967Z', + ' Response 200 POST /session (1929ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.IYBK05'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52863' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '6d93a1410a8c1cb1a3ebd1ab9772b5bb'\n }\n }' + ], + [ + '2023-04-06T10:18:32.976Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/url ', + '{ url: 'http://google.no' }' + ], + [ + '2023-04-06T10:18:37.570Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/url (4594ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.579Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:37.622Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (44ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.126Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:38.131Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.636Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:38.654Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (20ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.157Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:39.162Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.664Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:39.669Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.170Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:40.175Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.678Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:40.682Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.184Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:41.188Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.690Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:41.694Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.195Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:42.199Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.702Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:18:42.706Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.709Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: 'form[action="/search"] input[type=text]'\n }' + ], + [ + '2023-04-06T10:18:42.714Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:42.716Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4',\n ELEMENT: '1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:42.722Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/execute/sync (6ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:42.725Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: 'css selector',\n value: 'form[action="/search"] input[type=text]'\n }' + ], + [ + '2023-04-06T10:18:42.729Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:42.731Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4/value ', + '{\n text: 'Nightwatch.js',\n value: [\n 'N', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h', '.', 'j',\n 's', ''\n ]\n }' + ], + [ + '2023-04-06T10:18:47.242Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4/value (4512ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:47.245Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:18:47.250Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'a8c9c2b4-ff04-44ee-bab0-2c0346ca5a9a'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:47.251Z', + ' Request GET /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/a8c9c2b4-ff04-44ee-bab0-2c0346ca5a9a/text ', + '''' + ], + [ + '2023-04-06T10:18:47.268Z', + ' Response 200 GET /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/a8c9c2b4-ff04-44ee-bab0-2c0346ca5a9a/text (17ms)', + '{\n value: 'Web result with site links\\n' +\n '\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwatch....',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:47.274Z', + ' Request DELETE /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb ', + '''' + ], + [ + '2023-04-06T10:18:47.330Z', + ' Response 200 DELETE /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb (57ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:31.040Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.967Z', + ' Response 200 POST /session (1929ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.IYBK05\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52863\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'6d93a1410a8c1cb1a3ebd1ab9772b5bb\'\n }\n }' + ], + [ + '2023-04-06T10:18:32.976Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/url ', + '{ url: \'http://google.no\' }' + ], + [ + '2023-04-06T10:18:37.570Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/url (4594ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.579Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:37.622Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (44ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.126Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:38.131Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:38.636Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:38.654Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (20ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.157Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:39.162Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:39.664Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:39.669Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.170Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:40.175Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:40.678Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:40.682Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.184Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:41.188Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:41.690Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:41.694Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.195Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:42.199Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.702Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:18:42.706Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:18:42.709Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'form[action="/search"] input[type=text]\'\n }' + ], + [ + '2023-04-06T10:18:42.714Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:42.716Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4\',\n ELEMENT: \'1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:42.722Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/execute/sync (6ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:42.725Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{\n using: \'css selector\',\n value: \'form[action="/search"] input[type=text]\'\n }' + ], + [ + '2023-04-06T10:18:42.729Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:42.731Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4/value ', + '{\n text: \'Nightwatch.js\',\n value: [\n \'N\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\', \'.\', \'j\',\n \'s\', \'\'\n ]\n }' + ], + [ + '2023-04-06T10:18:47.242Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/1f8bfa3c-6bee-4e0d-9622-d75e81e8e8c4/value (4512ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:47.245Z', + ' Request POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:18:47.250Z', + ' Response 200 POST /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'a8c9c2b4-ff04-44ee-bab0-2c0346ca5a9a\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:47.251Z', + ' Request GET /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/a8c9c2b4-ff04-44ee-bab0-2c0346ca5a9a/text ', + '\'\'' + ], + [ + '2023-04-06T10:18:47.268Z', + ' Response 200 GET /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb/element/a8c9c2b4-ff04-44ee-bab0-2c0346ca5a9a/text (17ms)', + '{\n value: \'Web result with site links\\n\' +\n \'\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwatch....\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:47.274Z', + ' Request DELETE /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb ', + '\'\'' + ], + [ + '2023-04-06T10:18:47.330Z', + ' Response 200 DELETE /session/6d93a1410a8c1cb1a3ebd1ab9772b5bb (57ms)', + '{ value: null }' + ] + ] + }, + shadowRootExample: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 3, + lastError: null, + skipped: [ + ], + time: '1.116', + timeMs: 1116, + completed: { + 'retrieve the shadowRoot': { + time: '1.116', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element
was visible after 21 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 21 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected \'Your card validation code (CVC) is an…\' to be a(\'string\') and to include(\'card validation code\'): ', + stackTrace: '', + fullMsg: 'Expected \'Your card validation code (CVC) is an…\' to be a(\'string\') and to include(\'card validation code\'): ', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an img (5ms)', + stackTrace: '', + fullMsg: 'Expected element to be an img\u001b[0;90m (5ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'retrieve the shadowRoot': { + time: '1.116', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 21 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 21 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected \'Your card validation code (CVC) is an…\' to be a(\'string\') and to include(\'card validation code\'): ', + stackTrace: '', + fullMsg: 'Expected \'Your card validation code (CVC) is an…\' to be a(\'string\') and to include(\'card validation code\'): ', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an img\u001b[0;90m (5ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an img\u001b[0;90m (5ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1116, + startTimestamp: 'Thu, 06 Apr 2023 10:19:22 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:23 GMT' + } + }, + timeMs: 1116, + startTimestamp: 'Thu, 06 Apr 2023 10:19:22 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:23 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'retrieve the shadowRoot': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://mdn.github.io/web-components-examples/popup-info-box-web-component/' + ], + startTime: 1680776362014, + endTime: 1680776363051, + elapsedTime: 1037, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + 'form' + ], + startTime: 1680776363052, + endTime: 1680776363074, + elapsedTime: 22, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'getShadowRoot', + args: [ + 'popup-info' + ], + startTime: 1680776363076, + endTime: 1680776363089, + elapsedTime: 13, + status: 'pass', + result: { + } + }, + { + name: 'element().find', + args: [ + '[object Object]' + ], + startTime: 1680776363091, + endTime: 1680776363098, + elapsedTime: 7, + status: 'pass', + result: { + } + }, + { + name: 'element().property', + args: [ + 'innerHTML' + ], + startTime: 1680776363101, + endTime: 1680776363105, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'element().find', + args: [ + '[object Object]' + ], + startTime: 1680776363105, + endTime: 1680776363113, + elapsedTime: 8, + status: 'pass', + result: { + } + }, + { + name: 'getFirstElementChild', + args: [ + 'web element{3c89c9b5-8fd4-4b78-b2d7-c88f75569ffb}' + ], + startTime: 1680776363113, + endTime: 1680776363117, + elapsedTime: 4, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.element', + args: [ + '[object Object]' + ], + startTime: 1680776363121, + endTime: 1680776363127, + elapsedTime: 6, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776363135, + endTime: 1680776363190, + elapsedTime: 55, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 3, + group: '', + modulePath: '/examples/tests/shadowRootExample.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:21 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:23 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.Nvnx84' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:53167' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '8fa96f7ec7ee22f4ac363f003489ea0c', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/shadowRootExample_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:21.124Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:19:22.006Z', + ' Response 200 POST /session (883ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.Nvnx84'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:53167' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '8fa96f7ec7ee22f4ac363f003489ea0c'\n }\n }' + ], + [ + '2023-04-06T10:19:22.016Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/url ', + '{\n url: 'https://mdn.github.io/web-components-examples/popup-info-box-web-component/'\n }' + ], + [ + '2023-04-06T10:19:23.050Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/url (1035ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:23.053Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements ', + '{ using: 'css selector', value: 'form' }' + ], + [ + '2023-04-06T10:19:23.061Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements (8ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1e95cf14-4e05-4b2b-bcb7-298446591a2e'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.063Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1e95cf14-4e05-4b2b-bcb7-298446591a2e',\n ELEMENT: '1e95cf14-4e05-4b2b-bcb7-298446591a2e'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.073Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync (11ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:23.077Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements ', + '{ using: 'css selector', value: 'popup-info' }' + ], + [ + '2023-04-06T10:19:23.083Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '31537dad-d980-4c26-9eb4-948c0cf328e8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.085Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync ', + '{\n script: 'return (function(element) {\\n' +\n ' return element && element.shadowRoot;\\n' +\n ' }).apply(null, arguments);... (114 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '31537dad-d980-4c26-9eb4-948c0cf328e8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.088Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync (4ms)', + '{\n value: {\n 'shadow-6066-11e4-a52e-4f735466cecf': '067b78f3-a72a-498f-8f5e-ddb4c7024316'\n }\n }' + ], + [ + '2023-04-06T10:19:23.092Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element ', + '{ using: 'css selector', value: '.info' }' + ], + [ + '2023-04-06T10:19:23.098Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element (7ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '30144c92-7c71-4e06-901e-467463c951bf'\n }\n }' + ], + [ + '2023-04-06T10:19:23.101Z', + ' Request GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/30144c92-7c71-4e06-901e-467463c951bf/property/innerHTML ', + '''' + ], + [ + '2023-04-06T10:19:23.104Z', + ' Response 200 GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/30144c92-7c71-4e06-901e-467463c951bf/property/innerHTML (3ms)', + '{\n value: 'Your card validation code (CVC) is an extra security feature — it is the last 3 or 4 numbers on the ...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:23.106Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element ', + '{ using: 'css selector', value: '.icon' }' + ], + [ + '2023-04-06T10:19:23.112Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element (6ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '3c89c9b5-8fd4-4b78-b2d7-c88f75569ffb'\n }\n }' + ], + [ + '2023-04-06T10:19:23.114Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync ', + '{\n script: 'return (function(element) {\\n' +\n ' return element && element.firstElementChild;\\n' +\n ' }).apply(null, arguments);... (121 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '3c89c9b5-8fd4-4b78-b2d7-c88f75569ffb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.117Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync (3ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '377bb71f-6069-4e44-9c11-ad467daa912f'\n }\n }' + ], + [ + '2023-04-06T10:19:23.123Z', + ' Request GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/377bb71f-6069-4e44-9c11-ad467daa912f/name ', + '''' + ], + [ + '2023-04-06T10:19:23.125Z', + ' Response 200 GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/377bb71f-6069-4e44-9c11-ad467daa912f/name (3ms)', + '{ value: 'img' }' + ], + [ + '2023-04-06T10:19:23.138Z', + ' Request DELETE /session/8fa96f7ec7ee22f4ac363f003489ea0c ', + '''' + ], + [ + '2023-04-06T10:19:23.189Z', + ' Response 200 DELETE /session/8fa96f7ec7ee22f4ac363f003489ea0c (52ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:21.124Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:19:22.006Z', + ' Response 200 POST /session (883ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.Nvnx84\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:53167\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'8fa96f7ec7ee22f4ac363f003489ea0c\'\n }\n }' + ], + [ + '2023-04-06T10:19:22.016Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/url ', + '{\n url: \'https://mdn.github.io/web-components-examples/popup-info-box-web-component/\'\n }' + ], + [ + '2023-04-06T10:19:23.050Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/url (1035ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:23.053Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements ', + '{ using: \'css selector\', value: \'form\' }' + ], + [ + '2023-04-06T10:19:23.061Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements (8ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1e95cf14-4e05-4b2b-bcb7-298446591a2e\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.063Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1e95cf14-4e05-4b2b-bcb7-298446591a2e\',\n ELEMENT: \'1e95cf14-4e05-4b2b-bcb7-298446591a2e\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.073Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync (11ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:23.077Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements ', + '{ using: \'css selector\', value: \'popup-info\' }' + ], + [ + '2023-04-06T10:19:23.083Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/elements (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'31537dad-d980-4c26-9eb4-948c0cf328e8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.085Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync ', + '{\n script: \'return (function(element) {\\n\' +\n \' return element && element.shadowRoot;\\n\' +\n \' }).apply(null, arguments);... (114 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'31537dad-d980-4c26-9eb4-948c0cf328e8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.088Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync (4ms)', + '{\n value: {\n \'shadow-6066-11e4-a52e-4f735466cecf\': \'067b78f3-a72a-498f-8f5e-ddb4c7024316\'\n }\n }' + ], + [ + '2023-04-06T10:19:23.092Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element ', + '{ using: \'css selector\', value: \'.info\' }' + ], + [ + '2023-04-06T10:19:23.098Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element (7ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'30144c92-7c71-4e06-901e-467463c951bf\'\n }\n }' + ], + [ + '2023-04-06T10:19:23.101Z', + ' Request GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/30144c92-7c71-4e06-901e-467463c951bf/property/innerHTML ', + '\'\'' + ], + [ + '2023-04-06T10:19:23.104Z', + ' Response 200 GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/30144c92-7c71-4e06-901e-467463c951bf/property/innerHTML (3ms)', + '{\n value: \'Your card validation code (CVC) is an extra security feature — it is the last 3 or 4 numbers on the ...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:23.106Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element ', + '{ using: \'css selector\', value: \'.icon\' }' + ], + [ + '2023-04-06T10:19:23.112Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/067b78f3-a72a-498f-8f5e-ddb4c7024316/element (6ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'3c89c9b5-8fd4-4b78-b2d7-c88f75569ffb\'\n }\n }' + ], + [ + '2023-04-06T10:19:23.114Z', + ' Request POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync ', + '{\n script: \'return (function(element) {\\n\' +\n \' return element && element.firstElementChild;\\n\' +\n \' }).apply(null, arguments);... (121 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'3c89c9b5-8fd4-4b78-b2d7-c88f75569ffb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:23.117Z', + ' Response 200 POST /session/8fa96f7ec7ee22f4ac363f003489ea0c/execute/sync (3ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'377bb71f-6069-4e44-9c11-ad467daa912f\'\n }\n }' + ], + [ + '2023-04-06T10:19:23.123Z', + ' Request GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/377bb71f-6069-4e44-9c11-ad467daa912f/name ', + '\'\'' + ], + [ + '2023-04-06T10:19:23.125Z', + ' Response 200 GET /session/8fa96f7ec7ee22f4ac363f003489ea0c/element/377bb71f-6069-4e44-9c11-ad467daa912f/name (3ms)', + '{ value: \'img\' }' + ], + [ + '2023-04-06T10:19:23.138Z', + ' Request DELETE /session/8fa96f7ec7ee22f4ac363f003489ea0c ', + '\'\'' + ], + [ + '2023-04-06T10:19:23.189Z', + ' Response 200 DELETE /session/8fa96f7ec7ee22f4ac363f003489ea0c (52ms)', + '{ value: null }' + ] + ] + }, + vueTodoList: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 3, + lastError: null, + skipped: [ + ], + time: '0.8370', + timeMs: 837, + completed: { + 'should add a todo using global element()': { + time: '0.8370', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li> count to equal: "5" (9ms)', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (9ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element <#todo-list ul li> text to contain: "what is nightwatch?" (29ms)', + stackTrace: '', + fullMsg: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li input:checked> count to equal: "3" (13ms)', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (13ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should add a todo using global element()': { + time: '0.8370', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (9ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (9ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (29ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (13ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (13ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 837, + startTimestamp: 'Thu, 06 Apr 2023 10:19:24 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:24 GMT' + } + }, + timeMs: 837, + startTimestamp: 'Thu, 06 Apr 2023 10:19:24 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:24 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should add a todo using global element()': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://todo-vue3-vite.netlify.app/' + ], + startTime: 1680776364046, + endTime: 1680776364619, + elapsedTime: 573, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + '#new-todo-input', + 'what is nightwatch?' + ], + startTime: 1680776364620, + endTime: 1680776364733, + elapsedTime: 113, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + 'form button[type="submit"]' + ], + startTime: 1680776364733, + endTime: 1680776364771, + elapsedTime: 38, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '#todo-list ul li' + ], + startTime: 1680776364775, + endTime: 1680776364785, + elapsedTime: 10, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + '#todo-list ul li' + ], + startTime: 1680776364785, + endTime: 1680776364815, + elapsedTime: 30, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776364815, + endTime: 1680776364823, + elapsedTime: 8, + status: 'pass', + result: { + } + }, + { + name: 'click', + args: [ + '[object Object]' + ], + startTime: 1680776364823, + endTime: 1680776364863, + elapsedTime: 40, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '#todo-list ul li input:checked' + ], + startTime: 1680776364867, + endTime: 1680776364881, + elapsedTime: 14, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776364887, + endTime: 1680776364948, + elapsedTime: 61, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 3, + group: '', + modulePath: '/examples/tests/vueTodoList.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:23 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:24 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.W2KVEX' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:53194' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: 'f3ec74bf3829675b4d3a0431221daa4f', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/vueTodoList_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:23.195Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:19:24.038Z', + ' Response 200 POST /session (844ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.W2KVEX'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:53194' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: 'f3ec74bf3829675b4d3a0431221daa4f'\n }\n }' + ], + [ + '2023-04-06T10:19:24.048Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/url ', + '{ url: 'https://todo-vue3-vite.netlify.app/' }' + ], + [ + '2023-04-06T10:19:24.618Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/url (571ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.621Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: 'css selector', value: '#new-todo-input' }' + ], + [ + '2023-04-06T10:19:24.633Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (12ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '4bac2891-cb8f-4d71-9754-9ba17acab456'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.635Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/4bac2891-cb8f-4d71-9754-9ba17acab456/value ', + '{\n text: 'what is nightwatch?',\n value: [\n 'w', 'h', 'a', 't', ' ',\n 'i', 's', ' ', 'n', 'i',\n 'g', 'h', 't', 'w', 'a',\n 't', 'c', 'h', '?'\n ]\n }' + ], + [ + '2023-04-06T10:19:24.732Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/4bac2891-cb8f-4d71-9754-9ba17acab456/value (97ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.734Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: 'css selector', value: 'form button[type="submit"]' }' + ], + [ + '2023-04-06T10:19:24.741Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (7ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'a051cb42-6696-44ea-8d6a-77c55b0440c1'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.743Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/a051cb42-6696-44ea-8d6a-77c55b0440c1/click ', + '{}' + ], + [ + '2023-04-06T10:19:24.770Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/a051cb42-6696-44ea-8d6a-77c55b0440c1/click (27ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.776Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: 'css selector', value: '#todo-list ul li' }' + ], + [ + '2023-04-06T10:19:24.784Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (8ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '3f698484-5c27-4c9e-b834-5b01c93eecd6'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2476bf09-a2f0-4475-a807-467cf541fd79'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '08f7d964-53c3-4e38-b4e8-a5f5a4b0bdd2'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '87493ead-1c61-48de-8a14-1079b940015a'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'e232016a-f7ad-4a66-8ad0-0d466a68cd9a'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.786Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: 'css selector', value: '#todo-list ul li' }' + ], + [ + '2023-04-06T10:19:24.790Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '3f698484-5c27-4c9e-b834-5b01c93eecd6'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2476bf09-a2f0-4475-a807-467cf541fd79'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '08f7d964-53c3-4e38-b4e8-a5f5a4b0bdd2'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '87493ead-1c61-48de-8a14-1079b940015a'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'e232016a-f7ad-4a66-8ad0-0d466a68cd9a'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.792Z', + ' Request GET /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/text ', + '''' + ], + [ + '2023-04-06T10:19:24.814Z', + ' Response 200 GET /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/text (23ms)', + '{\n value: 'new taskwhat is nightwatch?\\n' +\n 'Edit\\n' +\n 'New Taskwhat Is Nightwatch?\\n' +\n 'Delete\\n' +\n 'New Taskwhat Is Nightwatch?'\n }' + ], + [ + '2023-04-06T10:19:24.816Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/element ', + '{ using: 'css selector', value: 'input[type="checkbox"]' }' + ], + [ + '2023-04-06T10:19:24.822Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/element (6ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded'\n }\n }' + ], + [ + '2023-04-06T10:19:24.824Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded/click ', + '{}' + ], + [ + '2023-04-06T10:19:24.862Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded/click (38ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.870Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: 'css selector', value: '#todo-list ul li input:checked' }' + ], + [ + '2023-04-06T10:19:24.880Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (11ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9313f9c9-2ffa-4132-9e70-de03bc78981c'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '217ad052-c671-4fc9-9760-de59964629bf'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.892Z', + ' Request DELETE /session/f3ec74bf3829675b4d3a0431221daa4f ', + '''' + ], + [ + '2023-04-06T10:19:24.947Z', + ' Response 200 DELETE /session/f3ec74bf3829675b4d3a0431221daa4f (56ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:23.195Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:19:24.038Z', + ' Response 200 POST /session (844ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.W2KVEX\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:53194\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'f3ec74bf3829675b4d3a0431221daa4f\'\n }\n }' + ], + [ + '2023-04-06T10:19:24.048Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/url ', + '{ url: \'https://todo-vue3-vite.netlify.app/\' }' + ], + [ + '2023-04-06T10:19:24.618Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/url (571ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.621Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: \'css selector\', value: \'#new-todo-input\' }' + ], + [ + '2023-04-06T10:19:24.633Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (12ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'4bac2891-cb8f-4d71-9754-9ba17acab456\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.635Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/4bac2891-cb8f-4d71-9754-9ba17acab456/value ', + '{\n text: \'what is nightwatch?\',\n value: [\n \'w\', \'h\', \'a\', \'t\', \' \',\n \'i\', \'s\', \' \', \'n\', \'i\',\n \'g\', \'h\', \'t\', \'w\', \'a\',\n \'t\', \'c\', \'h\', \'?\'\n ]\n }' + ], + [ + '2023-04-06T10:19:24.732Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/4bac2891-cb8f-4d71-9754-9ba17acab456/value (97ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.734Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: \'css selector\', value: \'form button[type="submit"]\' }' + ], + [ + '2023-04-06T10:19:24.741Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (7ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'a051cb42-6696-44ea-8d6a-77c55b0440c1\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.743Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/a051cb42-6696-44ea-8d6a-77c55b0440c1/click ', + '{}' + ], + [ + '2023-04-06T10:19:24.770Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/a051cb42-6696-44ea-8d6a-77c55b0440c1/click (27ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.776Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li\' }' + ], + [ + '2023-04-06T10:19:24.784Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (8ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'3f698484-5c27-4c9e-b834-5b01c93eecd6\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2476bf09-a2f0-4475-a807-467cf541fd79\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'08f7d964-53c3-4e38-b4e8-a5f5a4b0bdd2\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'87493ead-1c61-48de-8a14-1079b940015a\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'e232016a-f7ad-4a66-8ad0-0d466a68cd9a\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.786Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li\' }' + ], + [ + '2023-04-06T10:19:24.790Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'3f698484-5c27-4c9e-b834-5b01c93eecd6\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2476bf09-a2f0-4475-a807-467cf541fd79\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'08f7d964-53c3-4e38-b4e8-a5f5a4b0bdd2\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'87493ead-1c61-48de-8a14-1079b940015a\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'e232016a-f7ad-4a66-8ad0-0d466a68cd9a\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.792Z', + ' Request GET /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:24.814Z', + ' Response 200 GET /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/text (23ms)', + '{\n value: \'new taskwhat is nightwatch?\\n\' +\n \'Edit\\n\' +\n \'New Taskwhat Is Nightwatch?\\n\' +\n \'Delete\\n\' +\n \'New Taskwhat Is Nightwatch?\'\n }' + ], + [ + '2023-04-06T10:19:24.816Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/element ', + '{ using: \'css selector\', value: \'input[type="checkbox"]\' }' + ], + [ + '2023-04-06T10:19:24.822Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/e232016a-f7ad-4a66-8ad0-0d466a68cd9a/element (6ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded\'\n }\n }' + ], + [ + '2023-04-06T10:19:24.824Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded/click ', + '{}' + ], + [ + '2023-04-06T10:19:24.862Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/element/7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded/click (38ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:24.870Z', + ' Request POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li input:checked\' }' + ], + [ + '2023-04-06T10:19:24.880Z', + ' Response 200 POST /session/f3ec74bf3829675b4d3a0431221daa4f/elements (11ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9313f9c9-2ffa-4132-9e70-de03bc78981c\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'217ad052-c671-4fc9-9760-de59964629bf\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7fbbfbbe-ad13-441e-a05e-fb6d3dfa7ded\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:24.892Z', + ' Request DELETE /session/f3ec74bf3829675b4d3a0431221daa4f ', + '\'\'' + ], + [ + '2023-04-06T10:19:24.947Z', + ' Response 200 DELETE /session/f3ec74bf3829675b4d3a0431221daa4f (56ms)', + '{ value: null }' + ] + ] + }, + 'sample-with-relative-locators': { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 5, + lastError: null, + skipped: [ + ], + time: '0.2180', + timeMs: 218, + completed: { + 'locate password input': { + time: '0.09900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 27 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 27 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input (29ms)', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: "password" (37ms)', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'locate password input': { + time: '0.09900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 27 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 27 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 99, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + } + }, + timeMs: 99, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + }, + 'fill in password input': { + time: '0.1190', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 17 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 17 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if value of element equals \'password\' (11ms)', + stackTrace: '', + fullMsg: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(11ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'locate password input': { + time: '0.09900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 27 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 27 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (29ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (37ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 99, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + }, + 'fill in password input': { + time: '0.1190', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 17 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 17 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(11ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(11ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 119, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + } + }, + timeMs: 119, + startTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://archive.org/account/login' + ], + startTime: 1680776312360, + endTime: 1680776318569, + elapsedTime: 6209, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'locate password input': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776318572, + endTime: 1680776318600, + elapsedTime: 28, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.element', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776318601, + endTime: 1680776318630, + elapsedTime: 29, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776318630, + endTime: 1680776318668, + elapsedTime: 38, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'fill in password input': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'form.login-form' + ], + startTime: 1680776318672, + endTime: 1680776318689, + elapsedTime: 17, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'setValue', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})', + 'password' + ], + startTime: 1680776318689, + endTime: 1680776318775, + elapsedTime: 86, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.valueEquals', + args: [ + 'input[type=password]', + 'password' + ], + startTime: 1680776318775, + endTime: 1680776318787, + elapsedTime: 12, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + ], + startTime: 1680776318790, + endTime: 1680776318847, + elapsedTime: 57, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 2, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 5, + group: '', + modulePath: '/examples/tests/sample-with-relative-locators.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:30 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:38 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.JaFqwI' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52856' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '00dd2b665dc8d47d951758a8df6aab16', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/sample-with-relative-locators_chromedriver.log', + host: 'localhost', + tests: 2, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:30.901Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.353Z', + ' Response 200 POST /session (1454ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.JaFqwI'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52856' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '00dd2b665dc8d47d951758a8df6aab16'\n }\n }' + ], + [ + '2023-04-06T10:18:32.362Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/url ', + '{ url: 'https://archive.org/account/login' }' + ], + [ + '2023-04-06T10:18:38.567Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/url (6205ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.576Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.588Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (13ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.590Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04',\n ELEMENT: '9cd7b93b-d84a-4076-808d-69f133084e04'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.599Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.603Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.616Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (14ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.618Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name ', + '''' + ], + [ + '2023-04-06T10:18:38.629Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name (11ms)', + '{ value: 'input' }' + ], + [ + '2023-04-06T10:18:38.633Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.654Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (22ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.656Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type ', + 'undefined' + ], + [ + '2023-04-06T10:18:38.667Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type (12ms)', + '{ value: 'password' }' + ], + [ + '2023-04-06T10:18:38.673Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: 'css selector', value: 'form.login-form' }' + ], + [ + '2023-04-06T10:18:38.680Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (8ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8f46bd5c-745a-47f0-a218-d476c573a5cb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.682Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8f46bd5c-745a-47f0-a218-d476c573a5cb',\n ELEMENT: '8f46bd5c-745a-47f0-a218-d476c573a5cb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.689Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.691Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.697Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '627a1655-8ce4-4fe9-9694-bc4027e6ce99'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '68c381f6-bdd6-4553-8fd2-f849a12688fd'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.698Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear ', + '{}' + ], + [ + '2023-04-06T10:18:38.713Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear (15ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.714Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value ', + '{\n text: 'password',\n value: [\n 'p', 'a', 's',\n 's', 'w', 'o',\n 'r', 'd'\n ]\n }' + ], + [ + '2023-04-06T10:18:38.774Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value (60ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.778Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: 'css selector', value: 'input[type=password]' }' + ], + [ + '2023-04-06T10:18:38.783Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9cd7b93b-d84a-4076-808d-69f133084e04'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.784Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value ', + '''' + ], + [ + '2023-04-06T10:18:38.786Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value (2ms)', + '{ value: 'password' }' + ], + [ + '2023-04-06T10:18:38.793Z', + ' Request DELETE /session/00dd2b665dc8d47d951758a8df6aab16 ', + '''' + ], + [ + '2023-04-06T10:18:38.846Z', + ' Response 200 DELETE /session/00dd2b665dc8d47d951758a8df6aab16 (53ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:30.901Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:32.353Z', + ' Response 200 POST /session (1454ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.JaFqwI\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52856\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'00dd2b665dc8d47d951758a8df6aab16\'\n }\n }' + ], + [ + '2023-04-06T10:18:32.362Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/url ', + '{ url: \'https://archive.org/account/login\' }' + ], + [ + '2023-04-06T10:18:38.567Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/url (6205ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.576Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.588Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (13ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.590Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\',\n ELEMENT: \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.599Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.603Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.616Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (14ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.618Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name ', + '\'\'' + ], + [ + '2023-04-06T10:18:38.629Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/name (11ms)', + '{ value: \'input\' }' + ], + [ + '2023-04-06T10:18:38.633Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.654Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (22ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.656Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type ', + 'undefined' + ], + [ + '2023-04-06T10:18:38.667Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/attribute/type (12ms)', + '{ value: \'password\' }' + ], + [ + '2023-04-06T10:18:38.673Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: \'css selector\', value: \'form.login-form\' }' + ], + [ + '2023-04-06T10:18:38.680Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (8ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8f46bd5c-745a-47f0-a218-d476c573a5cb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.682Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8f46bd5c-745a-47f0-a218-d476c573a5cb\',\n ELEMENT: \'8f46bd5c-745a-47f0-a218-d476c573a5cb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.689Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:38.691Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.697Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/execute/sync (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'627a1655-8ce4-4fe9-9694-bc4027e6ce99\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'68c381f6-bdd6-4553-8fd2-f849a12688fd\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.698Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear ', + '{}' + ], + [ + '2023-04-06T10:18:38.713Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/clear (15ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.714Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value ', + '{\n text: \'password\',\n value: [\n \'p\', \'a\', \'s\',\n \'s\', \'w\', \'o\',\n \'r\', \'d\'\n ]\n }' + ], + [ + '2023-04-06T10:18:38.774Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/value (60ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:38.778Z', + ' Request POST /session/00dd2b665dc8d47d951758a8df6aab16/elements ', + '{ using: \'css selector\', value: \'input[type=password]\' }' + ], + [ + '2023-04-06T10:18:38.783Z', + ' Response 200 POST /session/00dd2b665dc8d47d951758a8df6aab16/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9cd7b93b-d84a-4076-808d-69f133084e04\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:38.784Z', + ' Request GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value ', + '\'\'' + ], + [ + '2023-04-06T10:18:38.786Z', + ' Response 200 GET /session/00dd2b665dc8d47d951758a8df6aab16/element/9cd7b93b-d84a-4076-808d-69f133084e04/property/value (2ms)', + '{ value: \'password\' }' + ], + [ + '2023-04-06T10:18:38.793Z', + ' Request DELETE /session/00dd2b665dc8d47d951758a8df6aab16 ', + '\'\'' + ], + [ + '2023-04-06T10:18:38.846Z', + ' Response 200 DELETE /session/00dd2b665dc8d47d951758a8df6aab16 (53ms)', + '{ value: null }' + ] + ] + }, + ecosia: { + reportPrefix: 'CHROME_111.0.5563.146__', + assertionsCount: 5, + lastError: null, + skipped: [ + ], + time: '3.056', + timeMs: 3056, + completed: { + 'Demo test ecosia.org': { + time: '3.056', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 39 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 39 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if the page title contains \'Ecosia\' (7ms)', + stackTrace: '', + fullMsg: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element is visible (17ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(17ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element is visible (86ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(86ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element <.layout__content> contains text \'Nightwatch.js\' (136ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(136ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 5, + errors: 0, + failed: 0, + skipped: 0, + tests: 5, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'Demo test ecosia.org': { + time: '3.056', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 39 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 39 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(17ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(17ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(86ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(86ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(136ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(136ms)\u001b[0m', + failure: false + } + ], + tests: 5, + commands: [ + ], + passed: 5, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 3056, + startTimestamp: 'Thu, 06 Apr 2023 10:18:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT' + } + }, + timeMs: 3056, + startTimestamp: 'Thu, 06 Apr 2023 10:18:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://www.ecosia.org/' + ], + startTime: 1680776313426, + endTime: 1680776317581, + elapsedTime: 4155, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'Demo test ecosia.org': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'body' + ], + startTime: 1680776317585, + endTime: 1680776317625, + elapsedTime: 40, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.titleContains', + args: [ + 'Ecosia' + ], + startTime: 1680776317626, + endTime: 1680776317633, + elapsedTime: 7, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.visible', + args: [ + 'input[type=search]' + ], + startTime: 1680776317633, + endTime: 1680776317653, + elapsedTime: 20, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'setValue', + args: [ + 'input[type=search]', + 'nightwatch' + ], + startTime: 1680776317653, + endTime: 1680776317770, + elapsedTime: 117, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.visible', + args: [ + 'button[type=submit]' + ], + startTime: 1680776317770, + endTime: 1680776317857, + elapsedTime: 87, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + 'button[type=submit]' + ], + startTime: 1680776317858, + endTime: 1680776320498, + elapsedTime: 2640, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.textContains', + args: [ + '.layout__content', + 'Nightwatch.js' + ], + startTime: 1680776320498, + endTime: 1680776320637, + elapsedTime: 139, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + ], + startTime: 1680776320640, + endTime: 1680776320701, + elapsedTime: 61, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 5, + group: '', + modulePath: '/examples/tests/ecosia.js', + startTimestamp: 'Thu, 06 Apr 2023 10:18:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:18:40 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'chrome', + browserVersion: '111.0.5563.146', + chrome: { + chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})', + userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.crT7I3' + }, + 'goog:chromeOptions': { + debuggerAddress: 'localhost:52878' + }, + networkConnectionEnabled: false, + pageLoadStrategy: 'normal', + platformName: 'mac os x', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify', + 'webauthn:extension:credBlob': true, + 'webauthn:extension:largeBlob': true, + 'webauthn:extension:minPinLength': true, + 'webauthn:extension:prf': true, + 'webauthn:virtualAuthenticators': true + }, + sessionId: '5e487662a1e1be6f6d821f923d21af64', + projectName: '', + buildName: '', + testEnv: 'chrome', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/ecosia_chromedriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:18:31.743Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.414Z', + ' Response 200 POST /session (1683ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '111.0.5563.146',\n chrome: {\n chromedriverVersion: '111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})',\n userDataDir: '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.crT7I3'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:52878' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:extension:minPinLength': true,\n 'webauthn:extension:prf': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: '5e487662a1e1be6f6d821f923d21af64'\n }\n }' + ], + [ + '2023-04-06T10:18:33.429Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/url ', + '{ url: 'https://www.ecosia.org/' }' + ], + [ + '2023-04-06T10:18:37.580Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/url (4152ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.587Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'body' }' + ], + [ + '2023-04-06T10:18:37.604Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (17ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f9443218-7896-44fc-9e32-b7d8642bade8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.608Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f9443218-7896-44fc-9e32-b7d8642bade8',\n ELEMENT: 'f9443218-7896-44fc-9e32-b7d8642bade8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.624Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (16ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.629Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/title ', + '''' + ], + [ + '2023-04-06T10:18:37.632Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/title (4ms)', + '{ value: 'Ecosia - the search engine that plants trees' }' + ], + [ + '2023-04-06T10:18:37.636Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'input[type=search]' }' + ], + [ + '2023-04-06T10:18:37.641Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.642Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f',\n ELEMENT: 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.651Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.654Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'input[type=search]' }' + ], + [ + '2023-04-06T10:18:37.663Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (9ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.664Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear ', + '{}' + ], + [ + '2023-04-06T10:18:37.683Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear (19ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.685Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value ', + '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }' + ], + [ + '2023-04-06T10:18:37.769Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value (84ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.774Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'button[type=submit]' }' + ], + [ + '2023-04-06T10:18:37.843Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (69ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.847Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b',\n ELEMENT: 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.855Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.860Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: 'button[type=submit]' }' + ], + [ + '2023-04-06T10:18:37.864Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'dfe9ef82-4e7e-407d-b76b-86de1443ac1b'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.865Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click ', + '{}' + ], + [ + '2023-04-06T10:18:40.497Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click (2632ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:40.501Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: 'css selector', value: '.layout__content' }' + ], + [ + '2023-04-06T10:18:40.507Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'e3557007-ed36-4c86-b27a-7c09e9317276'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:40.509Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text ', + '''' + ], + [ + '2023-04-06T10:18:40.634Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text (125ms)', + '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:40.643Z', + ' Request DELETE /session/5e487662a1e1be6f6d821f923d21af64 ', + '''' + ], + [ + '2023-04-06T10:18:40.700Z', + ' Response 200 DELETE /session/5e487662a1e1be6f6d821f923d21af64 (57ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:18:31.743Z', + ' Request POST /session ', + '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }' + ], + [ + '2023-04-06T10:18:33.414Z', + ' Response 200 POST /session (1683ms)', + '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'111.0.5563.146\',\n chrome: {\n chromedriverVersion: \'111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995})\',\n userDataDir: \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/.com.google.Chrome.crT7I3\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:52878\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:extension:minPinLength\': true,\n \'webauthn:extension:prf\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'5e487662a1e1be6f6d821f923d21af64\'\n }\n }' + ], + [ + '2023-04-06T10:18:33.429Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/url ', + '{ url: \'https://www.ecosia.org/\' }' + ], + [ + '2023-04-06T10:18:37.580Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/url (4152ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.587Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'body\' }' + ], + [ + '2023-04-06T10:18:37.604Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (17ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f9443218-7896-44fc-9e32-b7d8642bade8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.608Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f9443218-7896-44fc-9e32-b7d8642bade8\',\n ELEMENT: \'f9443218-7896-44fc-9e32-b7d8642bade8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.624Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (16ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.629Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/title ', + '\'\'' + ], + [ + '2023-04-06T10:18:37.632Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/title (4ms)', + '{ value: \'Ecosia - the search engine that plants trees\' }' + ], + [ + '2023-04-06T10:18:37.636Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'input[type=search]\' }' + ], + [ + '2023-04-06T10:18:37.641Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.642Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\',\n ELEMENT: \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.651Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.654Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'input[type=search]\' }' + ], + [ + '2023-04-06T10:18:37.663Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (9ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b51dfbe1-4af2-44cb-85dc-a229a45c3c3f\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.664Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear ', + '{}' + ], + [ + '2023-04-06T10:18:37.683Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/clear (19ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.685Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value ', + '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }' + ], + [ + '2023-04-06T10:18:37.769Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/b51dfbe1-4af2-44cb-85dc-a229a45c3c3f/value (84ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:37.774Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'button[type=submit]\' }' + ], + [ + '2023-04-06T10:18:37.843Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (69ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.847Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\',\n ELEMENT: \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.855Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/execute/sync (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:18:37.860Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'button[type=submit]\' }' + ], + [ + '2023-04-06T10:18:37.864Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'dfe9ef82-4e7e-407d-b76b-86de1443ac1b\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:37.865Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click ', + '{}' + ], + [ + '2023-04-06T10:18:40.497Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/element/dfe9ef82-4e7e-407d-b76b-86de1443ac1b/click (2632ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:18:40.501Z', + ' Request POST /session/5e487662a1e1be6f6d821f923d21af64/elements ', + '{ using: \'css selector\', value: \'.layout__content\' }' + ], + [ + '2023-04-06T10:18:40.507Z', + ' Response 200 POST /session/5e487662a1e1be6f6d821f923d21af64/elements (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'e3557007-ed36-4c86-b27a-7c09e9317276\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:18:40.509Z', + ' Request GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text ', + '\'\'' + ], + [ + '2023-04-06T10:18:40.634Z', + ' Response 200 GET /session/5e487662a1e1be6f6d821f923d21af64/element/e3557007-ed36-4c86-b27a-7c09e9317276/text (125ms)', + '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:18:40.643Z', + ' Request DELETE /session/5e487662a1e1be6f6d821f923d21af64 ', + '\'\'' + ], + [ + '2023-04-06T10:18:40.700Z', + ' Response 200 DELETE /session/5e487662a1e1be6f6d821f923d21af64 (57ms)', + '{ value: null }' + ] + ] + } + }, + firefox: { + angularTodoTest: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 2, + lastError: null, + skipped: [ + ], + time: '1.908', + timeMs: 1908, + completed: { + 'should add a todo using custom commands': { + time: '1.908', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected element text to equal: "what is nightwatch?" (15ms)', + stackTrace: '', + fullMsg: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <*[module=todoApp] li .done-true> count to equal: "2" (5ms)', + stackTrace: '', + fullMsg: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (5ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should add a todo using custom commands': { + time: '1.908', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element text to equal: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (5ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <*[module=todoApp] li .done-true> count to equal: \u001b[0;33m"2"\u001b[0m\u001b[0;90m (5ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1908, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT' + } + }, + timeMs: 1908, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should add a todo using custom commands': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://angularjs.org' + ], + startTime: 1680776367982, + endTime: 1680776369381, + elapsedTime: 1399, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + '[ng-model="todoList.todoText"]', + 'what is nightwatch?' + ], + startTime: 1680776369382, + endTime: 1680776369412, + elapsedTime: 30, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + '[value="add"]' + ], + startTime: 1680776369412, + endTime: 1680776369631, + elapsedTime: 219, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'getElementsInList', + args: [ + 'todoList.todos' + ], + startTime: 1680776369631, + endTime: 1680776369638, + elapsedTime: 7, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + 'web element{f201c631-099d-4556-b725-1b9036ff21e7}' + ], + startTime: 1680776369642, + endTime: 1680776369658, + elapsedTime: 16, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776369658, + endTime: 1680776369662, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'click', + args: [ + '[object Object]' + ], + startTime: 1680776369662, + endTime: 1680776369876, + elapsedTime: 214, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '*[module=todoApp] li .done-true' + ], + startTime: 1680776369878, + endTime: 1680776369883, + elapsedTime: 5, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776369890, + endTime: 1680776370259, + elapsedTime: 369, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 2, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/angularTodoTest.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:25 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93705, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileCfAJtT', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '1a5fbc5c-7381-4c6e-991b-936453257b8d', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/angularTodoTest_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:25.817Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:27.970Z', + ' Response 200 POST /session (2155ms)', + '{\n value: {\n sessionId: '1a5fbc5c-7381-4c6e-991b-936453257b8d',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93705,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileCfAJtT',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.986Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url ', + '{ url: 'https://angularjs.org' }' + ], + [ + '2023-04-06T10:19:29.380Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url (1394ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.385Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: 'css selector', value: '[ng-model="todoList.todoText"]' }' + ], + [ + '2023-04-06T10:19:29.391Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (7ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9e5ff74b-5b5b-4221-90b6-d14dcc856ec8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.393Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value ', + '{\n text: 'what is nightwatch?',\n value: [\n 'w', 'h', 'a', 't', ' ',\n 'i', 's', ' ', 'n', 'i',\n 'g', 'h', 't', 'w', 'a',\n 't', 'c', 'h', '?'\n ]\n }' + ], + [ + '2023-04-06T10:19:29.411Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value (18ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.413Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: 'css selector', value: '[value="add"]' }' + ], + [ + '2023-04-06T10:19:29.416Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b00c28b3-319c-44f5-906d-c24b3debafd7'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.418Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.631Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click (213ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.634Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync ', + '{\n script: 'var passedArgs = Array.prototype.slice.call(arguments,0); return (function(listName) {\\n' +\n ' // executed in the browser context\\n' +\n ' // eslint-disable-next-line\\n' +\n ' var elements = document.querySel... (366 characters)',\n args: [ 'todoList.todos' ]\n }' + ], + [ + '2023-04-06T10:19:29.637Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'df85178f-1166-489c-827d-17e13fecf95a'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed6dc16b-f99b-4ab7-821b-c17030dcd5de'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f201c631-099d-4556-b725-1b9036ff21e7'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.643Z', + ' Request GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text ', + '''' + ], + [ + '2023-04-06T10:19:29.656Z', + ' Response 200 GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text (13ms)', + '{ value: 'what is nightwatch?' }' + ], + [ + '2023-04-06T10:19:29.659Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element ', + '{ using: 'css selector', value: 'input' }' + ], + [ + '2023-04-06T10:19:29.662Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element (3ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '8b05c802-195a-4804-a216-09892ca94a68'\n }\n }' + ], + [ + '2023-04-06T10:19:29.663Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.875Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.879Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: 'css selector', value: '*[module=todoApp] li .done-true' }' + ], + [ + '2023-04-06T10:19:29.883Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f027fd19-1bf0-406e-899c-c005c1e40456'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed3f1754-6119-41a2-83c1-d56075d6b38a'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.893Z', + ' Request DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d ', + '''' + ], + [ + '2023-04-06T10:19:30.257Z', + ' Response 200 DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d (365ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:25.817Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:27.970Z', + ' Response 200 POST /session (2155ms)', + '{\n value: {\n sessionId: \'1a5fbc5c-7381-4c6e-991b-936453257b8d\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93705,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileCfAJtT\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.986Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url ', + '{ url: \'https://angularjs.org\' }' + ], + [ + '2023-04-06T10:19:29.380Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/url (1394ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.385Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: \'css selector\', value: \'[ng-model="todoList.todoText"]\' }' + ], + [ + '2023-04-06T10:19:29.391Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (7ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9e5ff74b-5b5b-4221-90b6-d14dcc856ec8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.393Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value ', + '{\n text: \'what is nightwatch?\',\n value: [\n \'w\', \'h\', \'a\', \'t\', \' \',\n \'i\', \'s\', \' \', \'n\', \'i\',\n \'g\', \'h\', \'t\', \'w\', \'a\',\n \'t\', \'c\', \'h\', \'?\'\n ]\n }' + ], + [ + '2023-04-06T10:19:29.411Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/9e5ff74b-5b5b-4221-90b6-d14dcc856ec8/value (18ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.413Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: \'css selector\', value: \'[value="add"]\' }' + ], + [ + '2023-04-06T10:19:29.416Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b00c28b3-319c-44f5-906d-c24b3debafd7\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.418Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.631Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/b00c28b3-319c-44f5-906d-c24b3debafd7/click (213ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.634Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync ', + '{\n script: \'var passedArgs = Array.prototype.slice.call(arguments,0); return (function(listName) {\\n\' +\n \' // executed in the browser context\\n\' +\n \' // eslint-disable-next-line\\n\' +\n \' var elements = document.querySel... (366 characters)\',\n args: [ \'todoList.todos\' ]\n }' + ], + [ + '2023-04-06T10:19:29.637Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/execute/sync (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'df85178f-1166-489c-827d-17e13fecf95a\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed6dc16b-f99b-4ab7-821b-c17030dcd5de\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f201c631-099d-4556-b725-1b9036ff21e7\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.643Z', + ' Request GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:29.656Z', + ' Response 200 GET /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/text (13ms)', + '{ value: \'what is nightwatch?\' }' + ], + [ + '2023-04-06T10:19:29.659Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element ', + '{ using: \'css selector\', value: \'input\' }' + ], + [ + '2023-04-06T10:19:29.662Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/f201c631-099d-4556-b725-1b9036ff21e7/element (3ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8b05c802-195a-4804-a216-09892ca94a68\'\n }\n }' + ], + [ + '2023-04-06T10:19:29.663Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click ', + '{}' + ], + [ + '2023-04-06T10:19:29.875Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/element/8b05c802-195a-4804-a216-09892ca94a68/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.879Z', + ' Request POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements ', + '{ using: \'css selector\', value: \'*[module=todoApp] li .done-true\' }' + ], + [ + '2023-04-06T10:19:29.883Z', + ' Response 200 POST /session/1a5fbc5c-7381-4c6e-991b-936453257b8d/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f027fd19-1bf0-406e-899c-c005c1e40456\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed3f1754-6119-41a2-83c1-d56075d6b38a\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:29.893Z', + ' Request DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d ', + '\'\'' + ], + [ + '2023-04-06T10:19:30.257Z', + ' Response 200 DELETE /session/1a5fbc5c-7381-4c6e-991b-936453257b8d (365ms)', + '{ value: null }' + ] + ] + }, + chromeCDP_example: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 1, + lastError: { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)' + }, + skipped: [ + ], + time: '4.669', + timeMs: 4669, + completed: { + 'using CDP DOM Snapshot': { + time: '4.669', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected "documents,strings" but got: "abortOnFailure" (4ms)', + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + fullMsg: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + failure: 'Expected "documents,strings" but got: "abortOnFailure"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png' + ] + } + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + tests: 1, + status: 'fail', + steps: [ + ], + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + testcases: { + 'using CDP DOM Snapshot': { + time: '4.669', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + fullMsg: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + failure: 'Expected "documents,strings" but got: "abortOnFailure"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png' + ] + } + ], + tests: 1, + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + status: 'fail', + steps: [ + ], + stackTrace: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + lastError: { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)' + }, + timeMs: 4669, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:32 GMT' + } + }, + lastError: { + name: 'NightwatchAssertError', + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)' + }, + timeMs: 4669, + startTimestamp: 'Thu, 06 Apr 2023 10:19:27 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:32 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'using CDP DOM Snapshot': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://nightwatchjs.org' + ], + startTime: 1680776367423, + endTime: 1680776371918, + elapsedTime: 4495, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'chrome.sendAndGetDevToolsCommand', + args: [ + 'DOMSnapshot.captureSnapshot', + '[object Object]' + ], + startTime: 1680776371920, + endTime: 1680776371920, + elapsedTime: 0, + status: 'fail', + result: { + message: 'Error while running "chrome.sendAndGetDevToolsCommand" command: [TypeError] nightwatchInstance.transport.driver[commandName] is not a function', + name: 'TypeError', + abortOnFailure: true, + stack: 'TypeError: Error while running "chrome.sendAndGetDevToolsCommand" command: [TypeError] nightwatchInstance.transport.driver[commandName] is not a function\n at ChromeCommandLoader.commandFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/_base-loader.js:38:62)\n at TreeNode.invokeCommand (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:154:31)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:177:12\n at new Promise ()\n at TreeNode.execute (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:176:12)\n at TreeNode.runCommand (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:138:27)\n at TreeNode.run (/Users/vaibhavsingh/Dev/nightwatch/lib/core/treenode.js:112:17)\n at AsyncTree.runChildNode (/Users/vaibhavsingh/Dev/nightwatch/lib/core/asynctree.js:118:31)\n at AsyncTree.traverse (/Users/vaibhavsingh/Dev/nightwatch/lib/core/asynctree.js:48:33)\n at CommandQueue.traverse (/Users/vaibhavsingh/Dev/nightwatch/lib/core/queue.js:97:8)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/_base-loader.js', + error_line_number: 38, + codeSnippet: [ + { + line_number: 36, + code: ' static createDriverCommand(nightwatchInstance, commandName) {' + }, + { + line_number: 37, + code: ' return function commandFn({args}) {' + }, + { + line_number: 38, + code: ' return nightwatchInstance.transport.driver[commandName](...args).catch((error) => {' + }, + { + line_number: 39, + code: ' if (error.remoteStacktrace) {' + }, + { + line_number: 40, + code: ' delete error.remoteStacktrace;' + } + ] + } + } + }, + { + name: 'assert.deepStrictEqual', + args: [ + ], + startTime: 1680776371927, + endTime: 1680776371930, + elapsedTime: 3, + status: 'fail', + result: { + message: 'Failed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected "documents,strings" but got: "abortOnFailure" (4ms)', + showDiff: false, + name: 'NightwatchAssertError', + abortOnFailure: true, + stack: '+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]\n at Assertion.assert (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:112:34)\n at StaticAssert.assertFn (/Users/vaibhavsingh/Dev/nightwatch/lib/api/_loaders/static.js:146:17)\n at Proxy. (/Users/vaibhavsingh/Dev/nightwatch/lib/api/index.js:157:30)\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:10:20)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js', + error_line_number: 10, + codeSnippet: [ + { + line_number: 8, + code: ' });' + }, + { + line_number: 9, + code: '' + }, + { + line_number: 10, + code: ' browser.assert.deepStrictEqual(Object.keys(dom), [\'documents\', \'strings\']);' + }, + { + line_number: 11, + code: ' });' + }, + { + line_number: 12, + code: '});' + } + ] + } + }, + screenshot: '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png' + }, + { + name: 'saveScreenshot', + args: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/chromeCDP_example/using-CDP-DOM-Snapshot_FAILED_Apr-06-2023-154931-GMT+0530.png', + 'function () { [native code] }' + ], + startTime: 1680776371985, + endTime: 1680776372089, + elapsedTime: 104, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'fail' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776372096, + endTime: 1680776372556, + elapsedTime: 460, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 1, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:25 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:32 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93704, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofiletwZmUW', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '245b46ac-127c-49fa-8360-05e674967894', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'fail', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/chromeCDP_example_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 1, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:25.786Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:27.415Z', + ' Response 200 POST /session (1630ms)', + '{\n value: {\n sessionId: '245b46ac-127c-49fa-8360-05e674967894',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93704,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofiletwZmUW',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.426Z', + ' Request POST /session/245b46ac-127c-49fa-8360-05e674967894/url ', + '{ url: 'https://nightwatchjs.org' }' + ], + [ + '2023-04-06T10:19:31.915Z', + ' Response 200 POST /session/245b46ac-127c-49fa-8360-05e674967894/url (4490ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:31.987Z', + ' Request GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot ', + '''' + ], + [ + '2023-04-06T10:19:32.085Z', + ' Response 200 GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot (76ms)', + '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuydB3wURRvG34QUQu8gXQRpoqIiVhQUBQSxgYgF+RRB...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:32.100Z', + ' Request DELETE /session/245b46ac-127c-49fa-8360-05e674967894 ', + '''' + ], + [ + '2023-04-06T10:19:32.554Z', + ' Response 200 DELETE /session/245b46ac-127c-49fa-8360-05e674967894 (454ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:25.786Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:27.415Z', + ' Response 200 POST /session (1630ms)', + '{\n value: {\n sessionId: \'245b46ac-127c-49fa-8360-05e674967894\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93704,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofiletwZmUW\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:27.426Z', + ' Request POST /session/245b46ac-127c-49fa-8360-05e674967894/url ', + '{ url: \'https://nightwatchjs.org\' }' + ], + [ + '2023-04-06T10:19:31.915Z', + ' Response 200 POST /session/245b46ac-127c-49fa-8360-05e674967894/url (4490ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:31.987Z', + ' Request GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot ', + '\'\'' + ], + [ + '2023-04-06T10:19:32.085Z', + ' Response 200 GET /session/245b46ac-127c-49fa-8360-05e674967894/screenshot (76ms)', + '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuydB3wURRvG34QUQu8gXQRpoqIiVhQUBQSxgYgF+RRB...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:32.100Z', + ' Request DELETE /session/245b46ac-127c-49fa-8360-05e674967894 ', + '\'\'' + ], + [ + '2023-04-06T10:19:32.554Z', + ' Response 200 DELETE /session/245b46ac-127c-49fa-8360-05e674967894 (454ms)', + '{ value: null }' + ] + ], + globalErrorRegister: [ + ' \u001b[1;31m→ ✖ \u001b[1;31mNightwatchAssertError\u001b[0m\n \u001b[0;31mFailed [deepStrictEqual]: (Expected values to be strictly deep-equal:\n+ actual - expected\n\n [\n+ \'abortOnFailure\'\n- \'documents\',\n- \'strings\'\n ]) - expected \u001b[0;32m"documents,strings"\u001b[0m but got: \u001b[0;31m"abortOnFailure"\u001b[0m \u001b[0;90m(4ms)\u001b[0m\u001b[0m\n\u001b[0;33m\n Error location:\u001b[0m\n /Users/vaibhavsingh/Dev/nightwatch/examples/tests/chromeCDP_example.js:\n ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n 8 | });\n 9 | \n \u001b[0;37m\u001b[41m 10 | browser.assert.deepStrictEqual(Object.keys(dom), [\'documents\', \'strings\']); \u001b[0m\n 11 | });\n 12 | });\n ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n\u001b[0m' + ] + }, + duckDuckGo: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 1, + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + skipped: [ + ], + time: '5.777', + timeMs: 5777, + completed: { + 'Search Nightwatch.js and check results': { + time: '5.777', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5088ms)', + stackTrace: ' at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + fullMsg: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + failure: 'Expected "visible" but got: "not found"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png' + ] + } + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + tests: 1, + status: 'fail', + steps: [ + ], + stackTrace: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + testcases: { + 'Search Nightwatch.js and check results': { + time: '5.777', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + stackTrace: ' at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + fullMsg: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + failure: 'Expected "visible" but got: "not found"', + screenshots: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png' + ] + } + ], + tests: 1, + commands: [ + ], + passed: 0, + errors: 0, + failed: 1, + skipped: 0, + status: 'fail', + steps: [ + ], + stackTrace: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + timeMs: 5777, + startTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:34 GMT' + } + }, + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' + }, + timeMs: 5777, + startTimestamp: 'Thu, 06 Apr 2023 10:19:29 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:34 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'Search Nightwatch.js and check results': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://duckduckgo.com' + ], + startTime: 1680776369008, + endTime: 1680776369560, + elapsedTime: 552, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + '#search_form_input_homepage' + ], + startTime: 1680776369561, + endTime: 1680776374652, + elapsedTime: 5091, + status: 'fail', + result: { + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected "visible" but got: "not found" (5088ms)', + showDiff: false, + name: 'NightwatchAssertError', + abortOnFailure: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)', + beautifiedStack: { + filePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js', + error_line_number: 8, + codeSnippet: [ + { + line_number: 6, + code: ' browser' + }, + { + line_number: 7, + code: ' .navigateTo(\'https://duckduckgo.com\')' + }, + { + line_number: 8, + code: ' .waitForElementVisible(\'#search_form_input_homepage\')' + }, + { + line_number: 9, + code: ' .sendKeys(\'#search_form_input_homepage\', [\'Nightwatch.js\'])' + }, + { + line_number: 10, + code: ' .click(\'#search_button_homepage\')' + } + ] + } + }, + screenshot: '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png' + }, + { + name: 'saveScreenshot', + args: [ + '/Users/vaibhavsingh/Dev/nightwatch/screens/duckDuckGo/Search-Nightwatch.js-and-check-results_FAILED_Apr-06-2023-154934-GMT+0530.png', + 'function () { [native code] }' + ], + startTime: 1680776374705, + endTime: 1680776374779, + elapsedTime: 74, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'fail' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776374783, + endTime: 1680776375248, + elapsedTime: 465, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 1, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:26 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:34 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93718, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile7QoCZB', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { }, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 }, - 'timeMs': 5396, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:15 GMT' - } + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '57729330-9108-4abf-9b31-a590c5cdf0e9', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'fail', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/duckDuckGo_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 1, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:27.321Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:28.997Z', + ' Response 200 POST /session (1678ms)', + '{\n value: {\n sessionId: '57729330-9108-4abf-9b31-a590c5cdf0e9',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93718,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile7QoCZB',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:29.011Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url ', + '{ url: 'https://duckduckgo.com' }' + ], + [ + '2023-04-06T10:19:29.559Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url (549ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.563Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:29.573Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (10ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.075Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:30.077Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.581Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:30.599Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (18ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.101Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:31.106Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.608Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:31.611Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.115Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:32.120Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.622Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:32.625Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.128Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:33.132Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.635Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:33.638Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.140Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:34.144Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.646Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: 'css selector', value: '#search_form_input_homepage' }' + ], + [ + '2023-04-06T10:19:34.649Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.708Z', + ' Request GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot ', + '''' + ], + [ + '2023-04-06T10:19:34.774Z', + ' Response 200 GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot (54ms)', + '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuzdeZhcZZk34Kf39JLuzr5CCIQlIARZBJTFBRVRRNEZ...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:34.787Z', + ' Request DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 ', + '''' + ], + [ + '2023-04-06T10:19:35.245Z', + ' Response 200 DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 (456ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:27.321Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:28.997Z', + ' Response 200 POST /session (1678ms)', + '{\n value: {\n sessionId: \'57729330-9108-4abf-9b31-a590c5cdf0e9\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93718,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile7QoCZB\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:29.011Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url ', + '{ url: \'https://duckduckgo.com\' }' + ], + [ + '2023-04-06T10:19:29.559Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/url (549ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:29.563Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:29.573Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (10ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.075Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:30.077Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:30.581Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:30.599Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (18ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.101Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:31.106Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (5ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:31.608Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:31.611Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.115Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:32.120Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:32.622Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:32.625Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.128Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:33.132Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:33.635Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:33.638Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.140Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:34.144Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.646Z', + ' Request POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements ', + '{ using: \'css selector\', value: \'#search_form_input_homepage\' }' + ], + [ + '2023-04-06T10:19:34.649Z', + ' Response 200 POST /session/57729330-9108-4abf-9b31-a590c5cdf0e9/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:34.708Z', + ' Request GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot ', + '\'\'' + ], + [ + '2023-04-06T10:19:34.774Z', + ' Response 200 GET /session/57729330-9108-4abf-9b31-a590c5cdf0e9/screenshot (54ms)', + '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACgAAAAV8CAYAAAD3/MaLAAAgAElEQVR4XuzdeZhcZZk34Kf39JLuzr5CCIQlIARZBJTFBRVRRNEZ...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:34.787Z', + ' Request DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 ', + '\'\'' + ], + [ + '2023-04-06T10:19:35.245Z', + ' Response 200 DELETE /session/57729330-9108-4abf-9b31-a590c5cdf0e9 (456ms)', + '{ value: null }' + ] + ], + globalErrorRegister: [ + ' \u001b[1;31m→ ✖ \u001b[1;31mNightwatchAssertError\u001b[0m\n \u001b[0;31mTimed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m\u001b[0m\n\u001b[0;33m\n Error location:\u001b[0m\n /Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n 6 | browser\n 7 | .navigateTo(\'https://duckduckgo.com\')\n \u001b[0;37m\u001b[41m 8 | .waitForElementVisible(\'#search_form_input_homepage\') \u001b[0m\n 9 | .sendKeys(\'#search_form_input_homepage\', [\'Nightwatch.js\'])\n 10 | .click(\'#search_button_homepage\')\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n\u001b[0m' + ] }, - 'completedSections': { - '__global_beforeEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__before_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'navigateTo', - 'args': ['https://www.ecosia.org/'], - 'startTime': 1671696762127, - 'endTime': 1671696774357, - 'elapsedTime': 12230, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + googlePageObject: { + reportPrefix: '', + assertionsCount: 0, + lastError: null, + skipped: [ + 'should complete the consent form' + ], + time: 0, + completed: { }, - 'Demo test ecosia.org': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696774361, - 'endTime': 1671696774389, - 'elapsedTime': 28, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['Ecosia'], - 'startTime': 1671696774389, - 'endTime': 1671696774395, - 'elapsedTime': 6, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['input[type=search]'], - 'startTime': 1671696774395, - 'endTime': 1671696774410, - 'elapsedTime': 15, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'setValue', - 'args': ['input[type=search]', 'nightwatch'], - 'startTime': 1671696774410, - 'endTime': 1671696774434, - 'elapsedTime': 24, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['button[type=submit]'], - 'startTime': 1671696774434, - 'endTime': 1671696774444, - 'elapsedTime': 10, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'click', - 'args': ['button[type=submit]'], - 'startTime': 1671696774444, - 'endTime': 1671696789840, - 'elapsedTime': 15396, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.textContains', - 'args': ['.layout__content', 'Nightwatch.js'], - 'startTime': 1671696789840, - 'endTime': 1671696790137, - 'elapsedTime': 297, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - 'Demo test ecosia.org fail': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696790139, - 'endTime': 1671696790147, - 'elapsedTime': 8, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['foo'], - 'startTime': 1671696790147, - 'endTime': 1671696795256, - 'elapsedTime': 5109, - 'status': 'fail', - 'result': { - 'message': 'Testing if the page title contains \'foo\' in 5000ms - expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web" (5100ms)', - 'showDiff': false, - 'name': 'NightwatchAssertError', - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'beautifiedStack': { - 'filePath': '/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js', - 'error_line_number': 22, - 'codeSnippet': [{ - 'line_number': 20, - 'code': ' browser' - }, { - 'line_number': 21, - 'code': ' .waitForElementVisible(\'body\')' - }, { - 'line_number': 22, - 'code': ' .assert.titleContains(\'foo\')' - }, { - 'line_number': 23, - 'code': ' .assert.visible(\'input[type=search]\')' - }, { - 'line_number': 24, - 'code': ' .setValue(\'input[type=search]\', \'nightwatch\')' - }] - } - }, - 'screenshot': '/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png' - }, { - 'name': 'saveScreenshot', - 'args': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png', 'function () { [native code] }'], - 'startTime': 1671696795313, - 'endTime': 1671696795533, - 'elapsedTime': 220, - 'status': 'pass', - 'result': { - 'status': 0 + completedSections: { + }, + errmessages: [ + ], + testsCount: 0, + skippedCount: 1, + failedCount: 0, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/googlePageObject.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:36 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:36 GMT', + sessionCapabilities: { + browserName: 'firefox', + alwaysMatch: { + acceptInsecureCerts: true, + 'moz:firefoxOptions': { + args: [ + ] } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'fail' - }, - '__after_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'end', - 'args': [], - 'startTime': 1671696795535, - 'endTime': 1671696796303, - 'elapsedTime': 768, - 'status': 'pass' - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__global_afterEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - } - }, - 'errmessages': [], - 'testsCount': 2, - 'skippedCount': 0, - 'failedCount': 1, - 'errorsCount': 0, - 'passedCount': 6, - 'group': '', - 'modulePath': '/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js', - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:40 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:15 GMT', - 'sessionCapabilities': { - 'acceptInsecureCerts': false, - 'browserName': 'firefox', - 'browserVersion': '108.0.1', - 'moz:accessibilityChecks': false, - 'moz:buildID': '20221215175817', - 'moz:geckodriverVersion': '0.32.0', - 'moz:headless': false, - 'moz:platformVersion': '22.1.0', - 'moz:processID': 1629, - 'moz:profile': '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/rust_mozprofile7Yt8vc', - 'moz:shutdownTimeout': 60000, - 'moz:useNonSpecCompliantPointerOrigin': false, - 'moz:webdriverClick': true, - 'moz:windowless': false, - 'pageLoadStrategy': 'normal', - 'platformName': 'mac', - 'proxy': {}, - 'setWindowRect': true, - 'strictFileInteractability': false, - 'timeouts': { - 'implicit': 0, - 'pageLoad': 300000, - 'script': 30000 - }, - 'unhandledPromptBehavior': 'dismiss and notify' + }, + name: 'google search with consent form - page objects' + }, + sessionId: '', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'skip', + host: 'localhost', + tests: 0, + failures: 0, + errors: 0, + httpOutput: [ + ], + rawHttpOutput: [ + ] }, - 'sessionId': '5ce15e96-1745-4071-b0ba-a21522f69cef', - 'projectName': '', - 'buildName': '', - 'testEnv': 'firefox', - 'isMobile': false, - 'status': 'fail', - 'seleniumLog': '/Users/binayakghosh/projects/nightwatch-copy/logs/ecosia_geckodriver.log', - 'tests': 2, - 'failures': 1, - 'errors': 0, - 'httpOutput': [ - ['2022-12-22T08:12:40.304Z', ' Request POST /session ', '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }'], - ['2022-12-22T08:12:42.123Z', ' Response 200 POST /session (1821ms)', '{\n value: {\n sessionId: '5ce15e96-1745-4071-b0ba-a21522f69cef',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '108.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20221215175817',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.1.0',\n 'moz:processID': 1629,\n 'moz:profile': '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/rust_mozprofile7Yt8vc',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }'], - ['2022-12-22T08:12:42.127Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url ', '{ url: 'https://www.ecosia.org/' }'], - ['2022-12-22T08:12:54.355Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url (12228ms)', '{ value: null }'], - ['2022-12-22T08:12:54.364Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:12:54.378Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (14ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '202fb5a8-b2a0-4387-82ba-ed00eba69ef6'\n }\n ]\n }'], - ['2022-12-22T08:12:54.380Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '202fb5a8-b2a0-4387-82ba-ed00eba69ef6',\n ELEMENT: '202fb5a8-b2a0-4387-82ba-ed00eba69ef6'\n }\n ]\n }'], - ['2022-12-22T08:12:54.388Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (8ms)', '{ value: true }'], - ['2022-12-22T08:12:54.392Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:12:54.393Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (1ms)', '{ value: 'Ecosia - the search engine that plants trees' }'], - ['2022-12-22T08:12:54.397Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:54.400Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (3ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7c487427-edc6-49f2-b230-e7d7c36a779b'\n }\n ]\n }'], - ['2022-12-22T08:12:54.401Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7c487427-edc6-49f2-b230-e7d7c36a779b',\n ELEMENT: '7c487427-edc6-49f2-b230-e7d7c36a779b'\n }\n ]\n }'], - ['2022-12-22T08:12:54.408Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (7ms)', '{ value: true }'], - ['2022-12-22T08:12:54.410Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:54.412Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7c487427-edc6-49f2-b230-e7d7c36a779b'\n }\n ]\n }'], - ['2022-12-22T08:12:54.413Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear ', '{}'], - ['2022-12-22T08:12:54.419Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear (7ms)', '{ value: null }'], - ['2022-12-22T08:12:54.419Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value ', '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }'], - ['2022-12-22T08:12:54.433Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value (14ms)', '{ value: null }'], - ['2022-12-22T08:12:54.436Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:54.437Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2db1076f-3aa3-457d-9eea-3244bd61f510'\n }\n ]\n }'], - ['2022-12-22T08:12:54.438Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2db1076f-3aa3-457d-9eea-3244bd61f510',\n ELEMENT: '2db1076f-3aa3-457d-9eea-3244bd61f510'\n }\n ]\n }'], - ['2022-12-22T08:12:54.442Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:12:54.444Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:54.448Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2db1076f-3aa3-457d-9eea-3244bd61f510'\n }\n ]\n }'], - ['2022-12-22T08:12:54.449Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click ', '{}'], - ['2022-12-22T08:13:09.839Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click (15390ms)', '{ value: null }'], - ['2022-12-22T08:13:09.843Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: '.layout__content' }'], - ['2022-12-22T08:13:09.846Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9275e380-10a2-4a89-8a2e-ba2c0d54c9b8'\n }\n ]\n }'], - ['2022-12-22T08:13:09.846Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text ', ''''], - ['2022-12-22T08:13:10.135Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text (287ms)', '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:10.139Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:13:10.142Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '51b2761e-4769-485c-9591-ad7fe1eb1b0d'\n }\n ]\n }'], - ['2022-12-22T08:13:10.143Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '51b2761e-4769-485c-9591-ad7fe1eb1b0d',\n ELEMENT: '51b2761e-4769-485c-9591-ad7fe1eb1b0d'\n }\n ]\n }'], - ['2022-12-22T08:13:10.147Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:13:10.149Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:10.151Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (2ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:10.655Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:10.660Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.164Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:11.167Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.669Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:11.683Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (14ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:12.187Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:12.191Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:12.696Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:12.701Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:13.206Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:13.211Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (6ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:13.717Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:13.721Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:14.225Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:14.230Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:14.735Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:14.740Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:15.244Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:15.248Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:15.316Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot ', ''''], - ['2022-12-22T08:13:15.523Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot (135ms)', '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACgAAAAZWCAYAAABgI/pGAAAgAElEQVR4XuydB3xT1RfHTxfQARQ6KC2bsrcgIKiggAKCypApU0TZ...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:15.537Z', ' Request DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef ', ''''], - ['2022-12-22T08:13:16.302Z', ' Response 200 DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef (765ms)', '{ value: null }'] - ], - 'rawHttpOutput': [ - ['2022-12-22T08:12:40.304Z', ' Request POST /session ', '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }'], - ['2022-12-22T08:12:42.123Z', ' Response 200 POST /session (1821ms)', '{\n value: {\n sessionId: \'5ce15e96-1745-4071-b0ba-a21522f69cef\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'108.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20221215175817\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.1.0\',\n \'moz:processID\': 1629,\n \'moz:profile\': \'/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/rust_mozprofile7Yt8vc\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }'], - ['2022-12-22T08:12:42.127Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url ', '{ url: \'https://www.ecosia.org/\' }'], - ['2022-12-22T08:12:54.355Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url (12228ms)', '{ value: null }'], - ['2022-12-22T08:12:54.364Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:12:54.378Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (14ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'202fb5a8-b2a0-4387-82ba-ed00eba69ef6\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.380Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'202fb5a8-b2a0-4387-82ba-ed00eba69ef6\',\n ELEMENT: \'202fb5a8-b2a0-4387-82ba-ed00eba69ef6\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.388Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (8ms)', '{ value: true }'], - ['2022-12-22T08:12:54.392Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:12:54.393Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (1ms)', '{ value: \'Ecosia - the search engine that plants trees\' }'], - ['2022-12-22T08:12:54.397Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:54.400Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (3ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7c487427-edc6-49f2-b230-e7d7c36a779b\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.401Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7c487427-edc6-49f2-b230-e7d7c36a779b\',\n ELEMENT: \'7c487427-edc6-49f2-b230-e7d7c36a779b\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.408Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (7ms)', '{ value: true }'], - ['2022-12-22T08:12:54.410Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:54.412Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7c487427-edc6-49f2-b230-e7d7c36a779b\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.413Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear ', '{}'], - ['2022-12-22T08:12:54.419Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear (7ms)', '{ value: null }'], - ['2022-12-22T08:12:54.419Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value ', '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }'], - ['2022-12-22T08:12:54.433Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value (14ms)', '{ value: null }'], - ['2022-12-22T08:12:54.436Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:54.437Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2db1076f-3aa3-457d-9eea-3244bd61f510\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.438Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2db1076f-3aa3-457d-9eea-3244bd61f510\',\n ELEMENT: \'2db1076f-3aa3-457d-9eea-3244bd61f510\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.442Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:12:54.444Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:54.448Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2db1076f-3aa3-457d-9eea-3244bd61f510\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.449Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click ', '{}'], - ['2022-12-22T08:13:09.839Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click (15390ms)', '{ value: null }'], - ['2022-12-22T08:13:09.843Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'.layout__content\' }'], - ['2022-12-22T08:13:09.846Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9275e380-10a2-4a89-8a2e-ba2c0d54c9b8\'\n }\n ]\n }'], - ['2022-12-22T08:13:09.846Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text ', '\'\''], - ['2022-12-22T08:13:10.135Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text (287ms)', '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:10.139Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:13:10.142Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'51b2761e-4769-485c-9591-ad7fe1eb1b0d\'\n }\n ]\n }'], - ['2022-12-22T08:13:10.143Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'51b2761e-4769-485c-9591-ad7fe1eb1b0d\',\n ELEMENT: \'51b2761e-4769-485c-9591-ad7fe1eb1b0d\'\n }\n ]\n }'], - ['2022-12-22T08:13:10.147Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:13:10.149Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:10.151Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (2ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:10.655Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:10.660Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.164Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:11.167Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.669Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:11.683Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (14ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:12.187Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:12.191Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:12.696Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:12.701Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:13.206Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:13.211Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (6ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:13.717Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:13.721Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:14.225Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:14.230Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:14.735Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:14.740Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:15.244Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:15.248Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:15.316Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot ', '\'\''], - ['2022-12-22T08:13:15.523Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot (135ms)', '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACgAAAAZWCAYAAABgI/pGAAAgAElEQVR4XuydB3xT1RfHTxfQARQ6KC2bsrcgIKiggAKCypApU0TZ...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:15.537Z', ' Request DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef ', '\'\''], - ['2022-12-22T08:13:16.302Z', ' Response 200 DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef (765ms)', '{ value: null }'] - ], - 'globalErrorRegister': [' \u001b[1;31m→ ✖ \u001b[1;31mNightwatchAssertError\u001b[0m\n \u001b[0;31mTesting if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m\u001b[0m\n\u001b[0;33m\n Error location:\u001b[0m\n /Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n 20 | browser\n 21 | .waitForElementVisible(\'body\')\n \u001b[0;37m\u001b[41m 22 | .assert.titleContains(\'foo\') \u001b[0m\n 23 | .assert.visible(\'input[type=search]\')\n 24 | .setValue(\'input[type=search]\', \'nightwatch\')\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n\u001b[0m'] - } - }, - 'modulesWithEnv': { - 'chrome': { - 'ecosia': { - 'reportPrefix': 'CHROME_108.0.5359.124__', - 'assertionsCount': 7, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'skipped': [], - 'time': '13.74', - 'timeMs': 13738, - 'completed': { + ecosia: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 5, + lastError: null, + skipped: [ + ], + time: '3.401', + timeMs: 3401, + completed: { 'Demo test ecosia.org': { - 'time': '8.146', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 24 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 24 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'failure': false - }], - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 5, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '8.146', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 24 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 24 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 8146, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:57 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT' - } - }, - 'timeMs': 8146, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:57 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.592', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 9 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 9 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png'] - }], - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'tests': 2, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'testcases': { + time: '3.401', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 28 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 28 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if the page title contains \'Ecosia\' (5ms)', + stackTrace: '', + fullMsg: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(5ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element is visible (42ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(42ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element is visible (40ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(40ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element <.layout__content> contains text \'Nightwatch.js\' (568ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(568ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 5, + errors: 0, + failed: 0, + skipped: 0, + tests: 5, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { 'Demo test ecosia.org': { - 'time': '8.146', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 24 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 24 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 8146, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:57 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.592', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 9 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 9 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png'] - }], - 'tests': 2, - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'timeMs': 5592, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:11 GMT' + time: '3.401', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 28 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 28 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(5ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(5ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(42ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(42ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(40ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(40ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(568ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(568ms)\u001b[0m', + failure: false + } + ], + tests: 5, + commands: [ + ], + passed: 5, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 3401, + startTimestamp: 'Thu, 06 Apr 2023 10:19:35 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:38 GMT' } }, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'timeMs': 5592, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:11 GMT' + timeMs: 3401, + startTimestamp: 'Thu, 06 Apr 2023 10:19:35 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:38 GMT' } }, - 'completedSections': { - '__global_beforeEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__before_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'navigateTo', - 'args': ['https://www.ecosia.org/'], - 'startTime': 1671696761632, - 'endTime': 1671696777891, - 'elapsedTime': 16259, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://www.ecosia.org/' + ], + startTime: 1680776373072, + endTime: 1680776375295, + elapsedTime: 2223, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' }, 'Demo test ecosia.org': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696777895, - 'endTime': 1671696777921, - 'elapsedTime': 26, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['Ecosia'], - 'startTime': 1671696777921, - 'endTime': 1671696777928, - 'elapsedTime': 7, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['input[type=search]'], - 'startTime': 1671696777928, - 'endTime': 1671696777949, - 'elapsedTime': 21, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'setValue', - 'args': ['input[type=search]', 'nightwatch'], - 'startTime': 1671696777949, - 'endTime': 1671696778059, - 'elapsedTime': 110, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['button[type=submit]'], - 'startTime': 1671696778059, - 'endTime': 1671696778074, - 'elapsedTime': 15, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'click', - 'args': ['button[type=submit]'], - 'startTime': 1671696778074, - 'endTime': 1671696785948, - 'elapsedTime': 7874, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.textContains', - 'args': ['.layout__content', 'Nightwatch.js'], - 'startTime': 1671696785949, - 'endTime': 1671696786039, - 'elapsedTime': 90, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - 'Demo test ecosia.org fail': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696786041, - 'endTime': 1671696786050, - 'elapsedTime': 9, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['foo'], - 'startTime': 1671696786050, - 'endTime': 1671696791152, - 'elapsedTime': 5102, - 'status': 'fail', - 'result': { - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'name': 'NightwatchAssertError', - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'screenshot': '/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png' - }, { - 'name': 'saveScreenshot', - 'args': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png', 'function () { [native code] }'], - 'startTime': 1671696791215, - 'endTime': 1671696791632, - 'elapsedTime': 417, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'fail' - }, - '__after_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'end', - 'args': [], - 'startTime': 1671696791634, - 'endTime': 1671696791688, - 'elapsedTime': 54, - 'status': 'pass' - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__global_afterEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'body' + ], + startTime: 1680776375298, + endTime: 1680776375327, + elapsedTime: 29, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.titleContains', + args: [ + 'Ecosia' + ], + startTime: 1680776375328, + endTime: 1680776375335, + elapsedTime: 7, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.visible', + args: [ + 'input[type=search]' + ], + startTime: 1680776375336, + endTime: 1680776375378, + elapsedTime: 42, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'setValue', + args: [ + 'input[type=search]', + 'nightwatch' + ], + startTime: 1680776375378, + endTime: 1680776375475, + elapsedTime: 97, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.visible', + args: [ + 'button[type=submit]' + ], + startTime: 1680776375476, + endTime: 1680776375518, + elapsedTime: 42, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + 'button[type=submit]' + ], + startTime: 1680776375518, + endTime: 1680776378119, + elapsedTime: 2601, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.textContains', + args: [ + '.layout__content', + 'Nightwatch.js' + ], + startTime: 1680776378120, + endTime: 1680776378695, + elapsedTime: 575, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + ], + startTime: 1680776378702, + endTime: 1680776379279, + elapsedTime: 577, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' } }, - 'errmessages': [], - 'testsCount': 2, - 'skippedCount': 0, - 'failedCount': 1, - 'errorsCount': 0, - 'passedCount': 6, - 'group': '', - 'modulePath': '/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js', - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:40 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:11 GMT', - 'sessionCapabilities': { - 'acceptInsecureCerts': false, - 'browserName': 'chrome', - 'browserVersion': '108.0.5359.124', - 'chrome': { - 'chromedriverVersion': '108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})', - 'userDataDir': '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/.com.google.Chrome.I4lvi3' + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 5, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/ecosia.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:31 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:38 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93753, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofilekOpiU3', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { }, - 'goog:chromeOptions': { - 'debuggerAddress': 'localhost:59791' - }, - 'networkConnectionEnabled': false, - 'pageLoadStrategy': 'normal', - 'platformName': 'mac os x', - 'proxy': {}, - 'setWindowRect': true, - 'strictFileInteractability': false, - 'timeouts': { - 'implicit': 0, - 'pageLoad': 300000, - 'script': 30000 - }, - 'unhandledPromptBehavior': 'dismiss and notify', - 'webauthn:extension:credBlob': true, - 'webauthn:extension:largeBlob': true, - 'webauthn:virtualAuthenticators': true + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' }, - 'sessionId': 'b798ac620a723364eefa550fe820baef', - 'projectName': '', - 'buildName': '', - 'testEnv': 'chrome', - 'isMobile': false, - 'status': 'fail', - 'seleniumLog': '/Users/binayakghosh/projects/nightwatch-copy/logs/ecosia_chromedriver.log', - 'tests': 2, - 'failures': 1, - 'errors': 0, - 'httpOutput': [ - ['2022-12-22T08:12:40.323Z', ' Request POST /session ', '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }'], - ['2022-12-22T08:12:41.627Z', ' Response 200 POST /session (1305ms)', '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '108.0.5359.124',\n chrome: {\n chromedriverVersion: '108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})',\n userDataDir: '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/.com.google.Chrome.I4lvi3'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:59791' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: 'b798ac620a723364eefa550fe820baef'\n }\n }'], - ['2022-12-22T08:12:41.635Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/url ', '{ url: 'https://www.ecosia.org/' }'], - ['2022-12-22T08:12:57.890Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/url (16256ms)', '{ value: null }'], - ['2022-12-22T08:12:57.898Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:12:57.908Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (11ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '608b7fc9-e6cd-42c3-87c0-cb8d80dd1451'\n }\n ]\n }'], - ['2022-12-22T08:12:57.910Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '608b7fc9-e6cd-42c3-87c0-cb8d80dd1451',\n ELEMENT: '608b7fc9-e6cd-42c3-87c0-cb8d80dd1451'\n }\n ]\n }'], - ['2022-12-22T08:12:57.920Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (10ms)', '{ value: true }'], - ['2022-12-22T08:12:57.922Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:12:57.926Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (4ms)', '{ value: 'Ecosia - the search engine that plants trees' }'], - ['2022-12-22T08:12:57.930Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:57.938Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b'\n }\n ]\n }'], - ['2022-12-22T08:12:57.939Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b',\n ELEMENT: 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b'\n }\n ]\n }'], - ['2022-12-22T08:12:57.947Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (9ms)', '{ value: true }'], - ['2022-12-22T08:12:57.950Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:57.954Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b'\n }\n ]\n }'], - ['2022-12-22T08:12:57.955Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear ', '{}'], - ['2022-12-22T08:12:57.971Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear (16ms)', '{ value: null }'], - ['2022-12-22T08:12:57.971Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value ', '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }'], - ['2022-12-22T08:12:58.059Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value (88ms)', '{ value: null }'], - ['2022-12-22T08:12:58.061Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:58.066Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (5ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e'\n }\n ]\n }'], - ['2022-12-22T08:12:58.067Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e',\n ELEMENT: 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e'\n }\n ]\n }'], - ['2022-12-22T08:12:58.072Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:12:58.074Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:58.077Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (3ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e'\n }\n ]\n }'], - ['2022-12-22T08:12:58.077Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click ', '{}'], - ['2022-12-22T08:13:05.948Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click (7871ms)', '{ value: null }'], - ['2022-12-22T08:13:05.951Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: '.layout__content' }'], - ['2022-12-22T08:13:05.959Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '54648a7a-b47c-4ff8-996d-270526697f01'\n }\n ]\n }'], - ['2022-12-22T08:13:05.960Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text ', ''''], - ['2022-12-22T08:13:06.038Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text (79ms)', '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:06.042Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:13:06.045Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b238a104-4c12-4f2c-94d9-95df4bd24ddf'\n }\n ]\n }'], - ['2022-12-22T08:13:06.045Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b238a104-4c12-4f2c-94d9-95df4bd24ddf',\n ELEMENT: 'b238a104-4c12-4f2c-94d9-95df4bd24ddf'\n }\n ]\n }'], - ['2022-12-22T08:13:06.050Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:13:06.052Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:06.054Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:06.561Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:06.569Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (8ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:07.075Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:07.081Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:07.585Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:07.587Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:08.092Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:08.098Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:08.603Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:08.608Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:09.111Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:09.113Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:09.617Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:09.619Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:10.121Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:10.124Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:10.629Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:10.635Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.140Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:11.145Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.217Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/screenshot ', ''''], - ['2022-12-22T08:13:11.622Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/screenshot (336ms)', '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACWAAAAY6CAYAAABXEFcWAAABKWlDQ1BTa2lhAAAokX2QsUvDUBCHP0sXtYuo6OCQsYuaVExb1MFW...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:11.636Z', ' Request DELETE /session/b798ac620a723364eefa550fe820baef ', ''''], - ['2022-12-22T08:13:11.688Z', ' Response 200 DELETE /session/b798ac620a723364eefa550fe820baef (52ms)', '{ value: null }'] - ], - 'rawHttpOutput': [ - ['2022-12-22T08:12:40.323Z', ' Request POST /session ', '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }'], - ['2022-12-22T08:12:41.627Z', ' Response 200 POST /session (1305ms)', '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'108.0.5359.124\',\n chrome: {\n chromedriverVersion: \'108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})\',\n userDataDir: \'/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/.com.google.Chrome.I4lvi3\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:59791\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'b798ac620a723364eefa550fe820baef\'\n }\n }'], - ['2022-12-22T08:12:41.635Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/url ', '{ url: \'https://www.ecosia.org/\' }'], - ['2022-12-22T08:12:57.890Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/url (16256ms)', '{ value: null }'], - ['2022-12-22T08:12:57.898Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:12:57.908Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (11ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'608b7fc9-e6cd-42c3-87c0-cb8d80dd1451\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.910Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'608b7fc9-e6cd-42c3-87c0-cb8d80dd1451\',\n ELEMENT: \'608b7fc9-e6cd-42c3-87c0-cb8d80dd1451\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.920Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (10ms)', '{ value: true }'], - ['2022-12-22T08:12:57.922Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:12:57.926Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (4ms)', '{ value: \'Ecosia - the search engine that plants trees\' }'], - ['2022-12-22T08:12:57.930Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:57.938Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.939Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\',\n ELEMENT: \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.947Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (9ms)', '{ value: true }'], - ['2022-12-22T08:12:57.950Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:57.954Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.955Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear ', '{}'], - ['2022-12-22T08:12:57.971Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear (16ms)', '{ value: null }'], - ['2022-12-22T08:12:57.971Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value ', '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }'], - ['2022-12-22T08:12:58.059Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value (88ms)', '{ value: null }'], - ['2022-12-22T08:12:58.061Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:58.066Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (5ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\'\n }\n ]\n }'], - ['2022-12-22T08:12:58.067Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\',\n ELEMENT: \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\'\n }\n ]\n }'], - ['2022-12-22T08:12:58.072Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:12:58.074Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:58.077Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (3ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\'\n }\n ]\n }'], - ['2022-12-22T08:12:58.077Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click ', '{}'], - ['2022-12-22T08:13:05.948Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click (7871ms)', '{ value: null }'], - ['2022-12-22T08:13:05.951Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'.layout__content\' }'], - ['2022-12-22T08:13:05.959Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'54648a7a-b47c-4ff8-996d-270526697f01\'\n }\n ]\n }'], - ['2022-12-22T08:13:05.960Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text ', '\'\''], - ['2022-12-22T08:13:06.038Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text (79ms)', '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:06.042Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:13:06.045Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b238a104-4c12-4f2c-94d9-95df4bd24ddf\'\n }\n ]\n }'], - ['2022-12-22T08:13:06.045Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b238a104-4c12-4f2c-94d9-95df4bd24ddf\',\n ELEMENT: \'b238a104-4c12-4f2c-94d9-95df4bd24ddf\'\n }\n ]\n }'], - ['2022-12-22T08:13:06.050Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:13:06.052Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:06.054Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:06.561Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:06.569Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (8ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:07.075Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:07.081Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:07.585Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:07.587Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:08.092Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:08.098Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:08.603Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:08.608Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:09.111Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:09.113Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:09.617Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:09.619Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:10.121Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:10.124Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:10.629Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:10.635Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.140Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:11.145Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.217Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/screenshot ', '\'\''], - ['2022-12-22T08:13:11.622Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/screenshot (336ms)', '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACWAAAAY6CAYAAABXEFcWAAABKWlDQ1BTa2lhAAAokX2QsUvDUBCHP0sXtYuo6OCQsYuaVExb1MFW...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:11.636Z', ' Request DELETE /session/b798ac620a723364eefa550fe820baef ', '\'\''], - ['2022-12-22T08:13:11.688Z', ' Response 200 DELETE /session/b798ac620a723364eefa550fe820baef (52ms)', '{ value: null }'] + sessionId: '6cb34613-0649-457f-a9db-e94b1ee7a079', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/ecosia_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:31.753Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:33.066Z', + ' Response 200 POST /session (1314ms)', + '{\n value: {\n sessionId: '6cb34613-0649-457f-a9db-e94b1ee7a079',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93753,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofilekOpiU3',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:33.073Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/url ', + '{ url: 'https://www.ecosia.org/' }' + ], + [ + '2023-04-06T10:19:35.294Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/url (2221ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:35.301Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: 'css selector', value: 'body' }' + ], + [ + '2023-04-06T10:19:35.313Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (13ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '79fe3b43-6ef5-46f7-b81a-6ba5e43a97d0'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.315Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '79fe3b43-6ef5-46f7-b81a-6ba5e43a97d0',\n ELEMENT: '79fe3b43-6ef5-46f7-b81a-6ba5e43a97d0'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.326Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync (11ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:35.330Z', + ' Request GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/title ', + '''' + ], + [ + '2023-04-06T10:19:35.333Z', + ' Response 200 GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/title (3ms)', + '{ value: 'Ecosia - the search engine that plants trees' }' + ], + [ + '2023-04-06T10:19:35.339Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: 'css selector', value: 'input[type=search]' }' + ], + [ + '2023-04-06T10:19:35.348Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (9ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'baaff7ce-e7e4-48bf-a109-459dce9dbdfc'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.349Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'baaff7ce-e7e4-48bf-a109-459dce9dbdfc',\n ELEMENT: 'baaff7ce-e7e4-48bf-a109-459dce9dbdfc'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.377Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync (28ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:35.379Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: 'css selector', value: 'input[type=search]' }' + ], + [ + '2023-04-06T10:19:35.385Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'baaff7ce-e7e4-48bf-a109-459dce9dbdfc'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.387Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/clear ', + '{}' + ], + [ + '2023-04-06T10:19:35.398Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/clear (11ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:35.399Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/value ', + '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }' + ], + [ + '2023-04-06T10:19:35.474Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/value (75ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:35.482Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: 'css selector', value: 'button[type=submit]' }' + ], + [ + '2023-04-06T10:19:35.495Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (14ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8e21ce02-77e5-49cb-9895-2f436159a21e'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.497Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8e21ce02-77e5-49cb-9895-2f436159a21e',\n ELEMENT: '8e21ce02-77e5-49cb-9895-2f436159a21e'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.515Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync (18ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:35.520Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: 'css selector', value: 'button[type=submit]' }' + ], + [ + '2023-04-06T10:19:35.523Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '8e21ce02-77e5-49cb-9895-2f436159a21e'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.526Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/8e21ce02-77e5-49cb-9895-2f436159a21e/click ', + '{}' + ], + [ + '2023-04-06T10:19:38.119Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/8e21ce02-77e5-49cb-9895-2f436159a21e/click (2593ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:38.124Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: 'css selector', value: '.layout__content' }' + ], + [ + '2023-04-06T10:19:38.127Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '37f690d8-76f0-42f1-a3cc-9f5a315171f8'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:38.128Z', + ' Request GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/37f690d8-76f0-42f1-a3cc-9f5a315171f8/text ', + '''' + ], + [ + '2023-04-06T10:19:38.687Z', + ' Response 200 GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/37f690d8-76f0-42f1-a3cc-9f5a315171f8/text (558ms)', + '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:38.706Z', + ' Request DELETE /session/6cb34613-0649-457f-a9db-e94b1ee7a079 ', + '''' + ], + [ + '2023-04-06T10:19:39.278Z', + ' Response 200 DELETE /session/6cb34613-0649-457f-a9db-e94b1ee7a079 (573ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:31.753Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:33.066Z', + ' Response 200 POST /session (1314ms)', + '{\n value: {\n sessionId: \'6cb34613-0649-457f-a9db-e94b1ee7a079\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93753,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofilekOpiU3\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:33.073Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/url ', + '{ url: \'https://www.ecosia.org/\' }' + ], + [ + '2023-04-06T10:19:35.294Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/url (2221ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:35.301Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: \'css selector\', value: \'body\' }' + ], + [ + '2023-04-06T10:19:35.313Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (13ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'79fe3b43-6ef5-46f7-b81a-6ba5e43a97d0\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.315Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'79fe3b43-6ef5-46f7-b81a-6ba5e43a97d0\',\n ELEMENT: \'79fe3b43-6ef5-46f7-b81a-6ba5e43a97d0\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.326Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync (11ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:35.330Z', + ' Request GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/title ', + '\'\'' + ], + [ + '2023-04-06T10:19:35.333Z', + ' Response 200 GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/title (3ms)', + '{ value: \'Ecosia - the search engine that plants trees\' }' + ], + [ + '2023-04-06T10:19:35.339Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: \'css selector\', value: \'input[type=search]\' }' + ], + [ + '2023-04-06T10:19:35.348Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (9ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'baaff7ce-e7e4-48bf-a109-459dce9dbdfc\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.349Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'baaff7ce-e7e4-48bf-a109-459dce9dbdfc\',\n ELEMENT: \'baaff7ce-e7e4-48bf-a109-459dce9dbdfc\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.377Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync (28ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:35.379Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: \'css selector\', value: \'input[type=search]\' }' + ], + [ + '2023-04-06T10:19:35.385Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'baaff7ce-e7e4-48bf-a109-459dce9dbdfc\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.387Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/clear ', + '{}' + ], + [ + '2023-04-06T10:19:35.398Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/clear (11ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:35.399Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/value ', + '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }' + ], + [ + '2023-04-06T10:19:35.474Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/baaff7ce-e7e4-48bf-a109-459dce9dbdfc/value (75ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:35.482Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: \'css selector\', value: \'button[type=submit]\' }' + ], + [ + '2023-04-06T10:19:35.495Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (14ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8e21ce02-77e5-49cb-9895-2f436159a21e\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.497Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8e21ce02-77e5-49cb-9895-2f436159a21e\',\n ELEMENT: \'8e21ce02-77e5-49cb-9895-2f436159a21e\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.515Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/execute/sync (18ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:35.520Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: \'css selector\', value: \'button[type=submit]\' }' + ], + [ + '2023-04-06T10:19:35.523Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'8e21ce02-77e5-49cb-9895-2f436159a21e\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:35.526Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/8e21ce02-77e5-49cb-9895-2f436159a21e/click ', + '{}' + ], + [ + '2023-04-06T10:19:38.119Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/8e21ce02-77e5-49cb-9895-2f436159a21e/click (2593ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:38.124Z', + ' Request POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements ', + '{ using: \'css selector\', value: \'.layout__content\' }' + ], + [ + '2023-04-06T10:19:38.127Z', + ' Response 200 POST /session/6cb34613-0649-457f-a9db-e94b1ee7a079/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'37f690d8-76f0-42f1-a3cc-9f5a315171f8\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:38.128Z', + ' Request GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/37f690d8-76f0-42f1-a3cc-9f5a315171f8/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:38.687Z', + ' Response 200 GET /session/6cb34613-0649-457f-a9db-e94b1ee7a079/element/37f690d8-76f0-42f1-a3cc-9f5a315171f8/text (558ms)', + '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:38.706Z', + ' Request DELETE /session/6cb34613-0649-457f-a9db-e94b1ee7a079 ', + '\'\'' + ], + [ + '2023-04-06T10:19:39.278Z', + ' Response 200 DELETE /session/6cb34613-0649-457f-a9db-e94b1ee7a079 (573ms)', + '{ value: null }' + ] ] }, - 'ecosia (duplicate)': { - 'reportPrefix': 'CHROME_108.0.5359.124__', - 'assertionsCount': 7, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'skipped': [], - 'time': '13.74', - 'timeMs': 13738, - 'completed': { - 'Demo test ecosia.org': { - 'time': '8.146', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 24 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 24 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'failure': false - }], - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 5, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '8.146', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 24 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 24 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 8146, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:57 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT' - } - }, - 'timeMs': 8146, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:57 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.592', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 9 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 9 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png'] - }], - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'tests': 2, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '8.146', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 24 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 24 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(4ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(20ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(13ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(90ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 8146, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:57 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.592', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 9 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 9 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png'] - }], - 'tests': 2, - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'timeMs': 5592, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:11 GMT' + selectElement: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 1, + lastError: null, + skipped: [ + ], + time: '1.082', + timeMs: 1082, + completed: { + demoTest: { + time: '1.082', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Forth option is selected (4ms)', + stackTrace: '', + fullMsg: 'Forth option is selected \u001b[0;90m(4ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + tests: 1, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + demoTest: { + time: '1.082', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Forth option is selected \u001b[0;90m(4ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Forth option is selected \u001b[0;90m(4ms)\u001b[0m', + failure: false + } + ], + tests: 1, + commands: [ + ], + passed: 1, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1082, + startTimestamp: 'Thu, 06 Apr 2023 10:19:41 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:42 GMT' + } + }, + timeMs: 1082, + startTimestamp: 'Thu, 06 Apr 2023 10:19:41 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:42 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + demoTest: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'url', + args: [ + 'https://www.selenium.dev/selenium/web/formPage.html' + ], + startTime: 1680776381835, + endTime: 1680776382638, + elapsedTime: 803, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'element().getAttribute', + args: [ + 'tagName' + ], + startTime: 1680776382642, + endTime: 1680776382669, + elapsedTime: 27, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776382669, + endTime: 1680776382674, + elapsedTime: 5, + status: 'pass', + result: { + } + }, + { + name: 'perform', + args: [ + 'function () { [native code] }' + ], + startTime: 1680776382639, + endTime: 1680776382900, + elapsedTime: 261, + status: 'pass' + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776382901, + endTime: 1680776382905, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'assert.selected', + args: [ + '[object Object]', + 'Forth option is selected' + ], + startTime: 1680776382906, + endTime: 1680776382912, + elapsedTime: 6, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776382919, + endTime: 1680776384029, + elapsedTime: 1110, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 1, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/selectElement.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:40 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:42 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93822, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileHW3NPW', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: 'a1f5ad5e-07f5-4800-ba12-b7a271e609a9', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/selectElement_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:40.629Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:41.827Z', + ' Response 200 POST /session (1199ms)', + '{\n value: {\n sessionId: 'a1f5ad5e-07f5-4800-ba12-b7a271e609a9',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93822,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileHW3NPW',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:41.837Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url ', + '{ url: 'https://www.selenium.dev/selenium/web/formPage.html' }' + ], + [ + '2023-04-06T10:19:42.638Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url (801ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.643Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements ', + '{ using: 'css selector', value: 'select[name=selectomatic]' }' + ], + [ + '2023-04-06T10:19:42.660Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements (17ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ab344c02-89da-455d-a6d9-f3d066201c38'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:42.661Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync ', + '{\n script: 'return (function(){return (function(){var h=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=h;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (43188 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ab344c02-89da-455d-a6d9-f3d066201c38',\n ELEMENT: 'ab344c02-89da-455d-a6d9-f3d066201c38'\n },\n 'tagName'\n ]\n }' + ], + [ + '2023-04-06T10:19:42.668Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync (7ms)', + '{ value: 'SELECT' }' + ], + [ + '2023-04-06T10:19:42.670Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{\n using: 'xpath',\n value: './option[. = "Four"]|./option[normalize-space(text()) = "Four"]|./optgroup/option[. = "Four"]|./optgroup/option[normalize-space(text()) = "Four"]'\n }' + ], + [ + '2023-04-06T10:19:42.674Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': 'f5aa1430-b88f-46cf-9816-c48c2ef74bfd'\n }\n }' + ], + [ + '2023-04-06T10:19:42.675Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '''' + ], + [ + '2023-04-06T10:19:42.678Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: false }' + ], + [ + '2023-04-06T10:19:42.679Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled ', + '''' + ], + [ + '2023-04-06T10:19:42.687Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.688Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click ', + '{}' + ], + [ + '2023-04-06T10:19:42.900Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.901Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{ using: 'css selector', value: 'option[value=four]' }' + ], + [ + '2023-04-06T10:19:42.905Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': 'f5aa1430-b88f-46cf-9816-c48c2ef74bfd'\n }\n }' + ], + [ + '2023-04-06T10:19:42.909Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '''' + ], + [ + '2023-04-06T10:19:42.911Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.921Z', + ' Request DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 ', + '''' + ], + [ + '2023-04-06T10:19:44.026Z', + ' Response 200 DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 (1105ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:40.629Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:41.827Z', + ' Response 200 POST /session (1199ms)', + '{\n value: {\n sessionId: \'a1f5ad5e-07f5-4800-ba12-b7a271e609a9\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93822,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileHW3NPW\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:41.837Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url ', + '{ url: \'https://www.selenium.dev/selenium/web/formPage.html\' }' + ], + [ + '2023-04-06T10:19:42.638Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/url (801ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.643Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements ', + '{ using: \'css selector\', value: \'select[name=selectomatic]\' }' + ], + [ + '2023-04-06T10:19:42.660Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/elements (17ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ab344c02-89da-455d-a6d9-f3d066201c38\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:42.661Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync ', + '{\n script: \'return (function(){return (function(){var h=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=h;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (43188 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ab344c02-89da-455d-a6d9-f3d066201c38\',\n ELEMENT: \'ab344c02-89da-455d-a6d9-f3d066201c38\'\n },\n \'tagName\'\n ]\n }' + ], + [ + '2023-04-06T10:19:42.668Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/execute/sync (7ms)', + '{ value: \'SELECT\' }' + ], + [ + '2023-04-06T10:19:42.670Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{\n using: \'xpath\',\n value: \'./option[. = "Four"]|./option[normalize-space(text()) = "Four"]|./optgroup/option[. = "Four"]|./optgroup/option[normalize-space(text()) = "Four"]\'\n }' + ], + [ + '2023-04-06T10:19:42.674Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f5aa1430-b88f-46cf-9816-c48c2ef74bfd\'\n }\n }' + ], + [ + '2023-04-06T10:19:42.675Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '\'\'' + ], + [ + '2023-04-06T10:19:42.678Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: false }' + ], + [ + '2023-04-06T10:19:42.679Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled ', + '\'\'' + ], + [ + '2023-04-06T10:19:42.687Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/enabled (9ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.688Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click ', + '{}' + ], + [ + '2023-04-06T10:19:42.900Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/click (212ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:42.901Z', + ' Request POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element ', + '{ using: \'css selector\', value: \'option[value=four]\' }' + ], + [ + '2023-04-06T10:19:42.905Z', + ' Response 200 POST /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/ab344c02-89da-455d-a6d9-f3d066201c38/element (4ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f5aa1430-b88f-46cf-9816-c48c2ef74bfd\'\n }\n }' + ], + [ + '2023-04-06T10:19:42.909Z', + ' Request GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected ', + '\'\'' + ], + [ + '2023-04-06T10:19:42.911Z', + ' Response 200 GET /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9/element/f5aa1430-b88f-46cf-9816-c48c2ef74bfd/selected (3ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:42.921Z', + ' Request DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 ', + '\'\'' + ], + [ + '2023-04-06T10:19:44.026Z', + ' Response 200 DELETE /session/a1f5ad5e-07f5-4800-ba12-b7a271e609a9 (1105ms)', + '{ value: null }' + ] + ] + }, + 'sample-with-relative-locators': { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 5, + lastError: null, + skipped: [ + ], + time: '0.09500', + timeMs: 95, + completed: { + 'locate password input': { + time: '0.04600', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 20 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 20 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input (10ms)', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (10ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: "password" (10ms)', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (10ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'locate password input': { + time: '0.04600', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 20 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 20 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input\u001b[0;90m (10ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (10ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (10ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (10ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 46, + startTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT' } }, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' + timeMs: 46, + startTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT' + }, + 'fill in password input': { + time: '0.04900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 9 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 9 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if value of element equals \'password\' (7ms)', + stackTrace: '', + fullMsg: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'locate password input': { + time: '0.04600', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 20 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 20 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to be an input\u001b[0;90m (10ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to be an input\u001b[0;90m (10ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (10ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element to have attribute "type" equal: \u001b[0;33m"password"\u001b[0m\u001b[0;90m (10ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 46, + startTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT' + }, + 'fill in password input': { + time: '0.04900', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 9 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 9 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if value of element \u001b[0;33m\u001b[0m equals \u001b[0;33m\'password\'\u001b[0m \u001b[0;90m(7ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 49, + startTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT' + } }, - 'timeMs': 5592, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:06 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:11 GMT' + timeMs: 49, + startTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT' } }, - 'completedSections': { - '__global_beforeEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__before_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'navigateTo', - 'args': ['https://www.ecosia.org/'], - 'startTime': 1671696761632, - 'endTime': 1671696777891, - 'elapsedTime': 16259, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' }, - 'Demo test ecosia.org': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696777895, - 'endTime': 1671696777921, - 'elapsedTime': 26, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['Ecosia'], - 'startTime': 1671696777921, - 'endTime': 1671696777928, - 'elapsedTime': 7, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['input[type=search]'], - 'startTime': 1671696777928, - 'endTime': 1671696777949, - 'elapsedTime': 21, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'setValue', - 'args': ['input[type=search]', 'nightwatch'], - 'startTime': 1671696777949, - 'endTime': 1671696778059, - 'elapsedTime': 110, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['button[type=submit]'], - 'startTime': 1671696778059, - 'endTime': 1671696778074, - 'elapsedTime': 15, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'click', - 'args': ['button[type=submit]'], - 'startTime': 1671696778074, - 'endTime': 1671696785948, - 'elapsedTime': 7874, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.textContains', - 'args': ['.layout__content', 'Nightwatch.js'], - 'startTime': 1671696785949, - 'endTime': 1671696786039, - 'elapsedTime': 90, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - 'Demo test ecosia.org fail': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696786041, - 'endTime': 1671696786050, - 'elapsedTime': 9, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['foo'], - 'startTime': 1671696786050, - 'endTime': 1671696791152, - 'elapsedTime': 5102, - 'status': 'fail', - 'result': { - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5095ms)\u001b[0m', - 'showDiff': false, - 'name': 'NightwatchAssertError', - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'screenshot': '/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png' - }, { - 'name': 'saveScreenshot', - 'args': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134311-GMT+0530.png', 'function () { [native code] }'], - 'startTime': 1671696791215, - 'endTime': 1671696791632, - 'elapsedTime': 417, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'fail' - }, - '__after_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'end', - 'args': [], - 'startTime': 1671696791634, - 'endTime': 1671696791688, - 'elapsedTime': 54, - 'status': 'pass' - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__global_afterEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://archive.org/account/login' + ], + startTime: 1680776378988, + endTime: 1680776383821, + elapsedTime: 4833, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'locate password input': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776383825, + endTime: 1680776383847, + elapsedTime: 22, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.element', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776383847, + endTime: 1680776383857, + elapsedTime: 10, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})' + ], + startTime: 1680776383857, + endTime: 1680776383867, + elapsedTime: 10, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'fill in password input': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'waitForElementVisible', + args: [ + 'form.login-form' + ], + startTime: 1680776383869, + endTime: 1680776383878, + elapsedTime: 9, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'setValue', + args: [ + 'RelativeBy({"relative":{"root":{"tag name":"input"},"filters":[{"kind":"below","args":[{"css selector":"input[type=email]"}]}]}})', + 'password' + ], + startTime: 1680776383878, + endTime: 1680776383907, + elapsedTime: 29, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.valueEquals', + args: [ + 'input[type=password]', + 'password' + ], + startTime: 1680776383908, + endTime: 1680776383917, + elapsedTime: 9, + status: 'pass', + result: { + status: 0 + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + ], + startTime: 1680776383919, + endTime: 1680776384266, + elapsedTime: 347, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' } }, - 'errmessages': [], - 'testsCount': 2, - 'skippedCount': 0, - 'failedCount': 1, - 'errorsCount': 0, - 'passedCount': 6, - 'group': '', - 'modulePath': '/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js', - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:40 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:11 GMT', - 'sessionCapabilities': { - 'acceptInsecureCerts': false, - 'browserName': 'chrome', - 'browserVersion': '108.0.5359.124', - 'chrome': { - 'chromedriverVersion': '108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})', - 'userDataDir': '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/.com.google.Chrome.I4lvi3' + errmessages: [ + ], + testsCount: 2, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 5, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/sample-with-relative-locators.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:37 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:43 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93802, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileblN5O0', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: 'e778e563-6512-4f69-b72c-fe30bb5df801', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/sample-with-relative-locators_geckodriver.log', + host: 'localhost', + tests: 2, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:37.670Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:38.983Z', + ' Response 200 POST /session (1314ms)', + '{\n value: {\n sessionId: 'e778e563-6512-4f69-b72c-fe30bb5df801',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93802,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileblN5O0',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:38.990Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/url ', + '{ url: 'https://archive.org/account/login' }' + ], + [ + '2023-04-06T10:19:43.820Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/url (4831ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:43.828Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.839Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (12ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '698e20ed-f1e9-4bd3-9469-bc6001cc8926'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed49daea-95cf-4c88-92b5-5091c9d0faae'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.841Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '698e20ed-f1e9-4bd3-9469-bc6001cc8926',\n ELEMENT: '698e20ed-f1e9-4bd3-9469-bc6001cc8926'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.846Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (6ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:43.848Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.854Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '698e20ed-f1e9-4bd3-9469-bc6001cc8926'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed49daea-95cf-4c88-92b5-5091c9d0faae'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.855Z', + ' Request GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/name ', + '''' + ], + [ + '2023-04-06T10:19:43.856Z', + ' Response 200 GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/name (2ms)', + '{ value: 'input' }' + ], + [ + '2023-04-06T10:19:43.858Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.863Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '698e20ed-f1e9-4bd3-9469-bc6001cc8926'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed49daea-95cf-4c88-92b5-5091c9d0faae'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.864Z', + ' Request GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/attribute/type ', + 'undefined' + ], + [ + '2023-04-06T10:19:43.867Z', + ' Response 200 GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/attribute/type (3ms)', + '{ value: 'password' }' + ], + [ + '2023-04-06T10:19:43.870Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements ', + '{ using: 'css selector', value: 'form.login-form' }' + ], + [ + '2023-04-06T10:19:43.872Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '473d143d-3025-498e-9b71-7c7fdfca85e0'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.873Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '473d143d-3025-498e-9b71-7c7fdfca85e0',\n ELEMENT: '473d143d-3025-498e-9b71-7c7fdfca85e0'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.878Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (5ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:43.880Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: 'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)',\n args: [\n {\n relative: { root: { 'tag name': 'input' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.889Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (10ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '698e20ed-f1e9-4bd3-9469-bc6001cc8926'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ed49daea-95cf-4c88-92b5-5091c9d0faae'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.890Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/clear ', + '{}' + ], + [ + '2023-04-06T10:19:43.895Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/clear (5ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:43.896Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/value ', + '{\n text: 'password',\n value: [\n 'p', 'a', 's',\n 's', 'w', 'o',\n 'r', 'd'\n ]\n }' + ], + [ + '2023-04-06T10:19:43.907Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/value (11ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:43.911Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements ', + '{ using: 'css selector', value: 'input[type=password]' }' + ], + [ + '2023-04-06T10:19:43.913Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '698e20ed-f1e9-4bd3-9469-bc6001cc8926'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.913Z', + ' Request GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/property/value ', + '''' + ], + [ + '2023-04-06T10:19:43.915Z', + ' Response 200 GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/property/value (2ms)', + '{ value: 'password' }' + ], + [ + '2023-04-06T10:19:43.921Z', + ' Request DELETE /session/e778e563-6512-4f69-b72c-fe30bb5df801 ', + '''' + ], + [ + '2023-04-06T10:19:44.265Z', + ' Response 200 DELETE /session/e778e563-6512-4f69-b72c-fe30bb5df801 (344ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:37.670Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:38.983Z', + ' Response 200 POST /session (1314ms)', + '{\n value: {\n sessionId: \'e778e563-6512-4f69-b72c-fe30bb5df801\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93802,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileblN5O0\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:38.990Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/url ', + '{ url: \'https://archive.org/account/login\' }' + ], + [ + '2023-04-06T10:19:43.820Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/url (4831ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:43.828Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.839Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (12ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed49daea-95cf-4c88-92b5-5091c9d0faae\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.841Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\',\n ELEMENT: \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.846Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (6ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:43.848Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.854Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed49daea-95cf-4c88-92b5-5091c9d0faae\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.855Z', + ' Request GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/name ', + '\'\'' + ], + [ + '2023-04-06T10:19:43.856Z', + ' Response 200 GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/name (2ms)', + '{ value: \'input\' }' + ], + [ + '2023-04-06T10:19:43.858Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.863Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed49daea-95cf-4c88-92b5-5091c9d0faae\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.864Z', + ' Request GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/attribute/type ', + 'undefined' + ], + [ + '2023-04-06T10:19:43.867Z', + ' Response 200 GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/attribute/type (3ms)', + '{ value: \'password\' }' + ], + [ + '2023-04-06T10:19:43.870Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements ', + '{ using: \'css selector\', value: \'form.login-form\' }' + ], + [ + '2023-04-06T10:19:43.872Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'473d143d-3025-498e-9b71-7c7fdfca85e0\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.873Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'473d143d-3025-498e-9b71-7c7fdfca85e0\',\n ELEMENT: \'473d143d-3025-498e-9b71-7c7fdfca85e0\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.878Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (5ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:43.880Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync ', + '{\n script: \'return (function(){return (function(){var aa=this||self;function ba(a){return"string"==typeof a}function ca(a,b){a=a.split(".");var c=aa;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "... (53855 characters)\',\n args: [\n {\n relative: { root: { \'tag name\': \'input\' }, filters: [ [Object] ] }\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.889Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/execute/sync (10ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ed49daea-95cf-4c88-92b5-5091c9d0faae\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'c9f0afe9-4af4-4842-9da3-2fa454dd3bdb\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.890Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/clear ', + '{}' + ], + [ + '2023-04-06T10:19:43.895Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/clear (5ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:43.896Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/value ', + '{\n text: \'password\',\n value: [\n \'p\', \'a\', \'s\',\n \'s\', \'w\', \'o\',\n \'r\', \'d\'\n ]\n }' + ], + [ + '2023-04-06T10:19:43.907Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/value (11ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:43.911Z', + ' Request POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements ', + '{ using: \'css selector\', value: \'input[type=password]\' }' + ], + [ + '2023-04-06T10:19:43.913Z', + ' Response 200 POST /session/e778e563-6512-4f69-b72c-fe30bb5df801/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'698e20ed-f1e9-4bd3-9469-bc6001cc8926\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:43.913Z', + ' Request GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/property/value ', + '\'\'' + ], + [ + '2023-04-06T10:19:43.915Z', + ' Response 200 GET /session/e778e563-6512-4f69-b72c-fe30bb5df801/element/698e20ed-f1e9-4bd3-9469-bc6001cc8926/property/value (2ms)', + '{ value: \'password\' }' + ], + [ + '2023-04-06T10:19:43.921Z', + ' Request DELETE /session/e778e563-6512-4f69-b72c-fe30bb5df801 ', + '\'\'' + ], + [ + '2023-04-06T10:19:44.265Z', + ' Response 200 DELETE /session/e778e563-6512-4f69-b72c-fe30bb5df801 (344ms)', + '{ value: null }' + ] + ] + }, + shadowRootExample: { + reportPrefix: '', + assertionsCount: 0, + lastError: null, + skipped: [ + 'retrieve the shadowRoot' + ], + time: 0, + completed: { + }, + completedSections: { + }, + errmessages: [ + ], + testsCount: 0, + skippedCount: 1, + failedCount: 0, + errorsCount: 0, + passedCount: 0, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/shadowRootExample.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:45 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:45 GMT', + sessionCapabilities: { + browserName: 'firefox', + alwaysMatch: { + acceptInsecureCerts: true, + 'moz:firefoxOptions': { + args: [ + ] + } }, - 'goog:chromeOptions': { - 'debuggerAddress': 'localhost:59791' - }, - 'networkConnectionEnabled': false, - 'pageLoadStrategy': 'normal', - 'platformName': 'mac os x', - 'proxy': {}, - 'setWindowRect': true, - 'strictFileInteractability': false, - 'timeouts': { - 'implicit': 0, - 'pageLoad': 300000, - 'script': 30000 - }, - 'unhandledPromptBehavior': 'dismiss and notify', - 'webauthn:extension:credBlob': true, - 'webauthn:extension:largeBlob': true, - 'webauthn:virtualAuthenticators': true + name: 'Shadow Root example test' }, - 'sessionId': 'b798ac620a723364eefa550fe820baef', - 'projectName': '', - 'buildName': '', - 'testEnv': 'chrome', - 'isMobile': false, - 'status': 'fail', - 'seleniumLog': '/Users/binayakghosh/projects/nightwatch-copy/logs/ecosia_chromedriver.log', - 'tests': 2, - 'failures': 1, - 'errors': 0, - 'httpOutput': [ - ['2022-12-22T08:12:40.323Z', ' Request POST /session ', '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: 'chrome',\n 'goog:chromeOptions': { w3c: true, args: [] }\n }\n }\n }'], - ['2022-12-22T08:12:41.627Z', ' Response 200 POST /session (1305ms)', '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'chrome',\n browserVersion: '108.0.5359.124',\n chrome: {\n chromedriverVersion: '108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})',\n userDataDir: '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/.com.google.Chrome.I4lvi3'\n },\n 'goog:chromeOptions': { debuggerAddress: 'localhost:59791' },\n networkConnectionEnabled: false,\n pageLoadStrategy: 'normal',\n platformName: 'mac os x',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify',\n 'webauthn:extension:credBlob': true,\n 'webauthn:extension:largeBlob': true,\n 'webauthn:virtualAuthenticators': true\n },\n sessionId: 'b798ac620a723364eefa550fe820baef'\n }\n }'], - ['2022-12-22T08:12:41.635Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/url ', '{ url: 'https://www.ecosia.org/' }'], - ['2022-12-22T08:12:57.890Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/url (16256ms)', '{ value: null }'], - ['2022-12-22T08:12:57.898Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:12:57.908Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (11ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '608b7fc9-e6cd-42c3-87c0-cb8d80dd1451'\n }\n ]\n }'], - ['2022-12-22T08:12:57.910Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '608b7fc9-e6cd-42c3-87c0-cb8d80dd1451',\n ELEMENT: '608b7fc9-e6cd-42c3-87c0-cb8d80dd1451'\n }\n ]\n }'], - ['2022-12-22T08:12:57.920Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (10ms)', '{ value: true }'], - ['2022-12-22T08:12:57.922Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:12:57.926Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (4ms)', '{ value: 'Ecosia - the search engine that plants trees' }'], - ['2022-12-22T08:12:57.930Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:57.938Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b'\n }\n ]\n }'], - ['2022-12-22T08:12:57.939Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b',\n ELEMENT: 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b'\n }\n ]\n }'], - ['2022-12-22T08:12:57.947Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (9ms)', '{ value: true }'], - ['2022-12-22T08:12:57.950Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:57.954Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b'\n }\n ]\n }'], - ['2022-12-22T08:12:57.955Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear ', '{}'], - ['2022-12-22T08:12:57.971Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear (16ms)', '{ value: null }'], - ['2022-12-22T08:12:57.971Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value ', '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }'], - ['2022-12-22T08:12:58.059Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value (88ms)', '{ value: null }'], - ['2022-12-22T08:12:58.061Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:58.066Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (5ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e'\n }\n ]\n }'], - ['2022-12-22T08:12:58.067Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e',\n ELEMENT: 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e'\n }\n ]\n }'], - ['2022-12-22T08:12:58.072Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:12:58.074Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:58.077Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (3ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b97d3e55-78a3-45e4-944d-2c467dbd0b7e'\n }\n ]\n }'], - ['2022-12-22T08:12:58.077Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click ', '{}'], - ['2022-12-22T08:13:05.948Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click (7871ms)', '{ value: null }'], - ['2022-12-22T08:13:05.951Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: '.layout__content' }'], - ['2022-12-22T08:13:05.959Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '54648a7a-b47c-4ff8-996d-270526697f01'\n }\n ]\n }'], - ['2022-12-22T08:13:05.960Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text ', ''''], - ['2022-12-22T08:13:06.038Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text (79ms)', '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:06.042Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:13:06.045Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b238a104-4c12-4f2c-94d9-95df4bd24ddf'\n }\n ]\n }'], - ['2022-12-22T08:13:06.045Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'b238a104-4c12-4f2c-94d9-95df4bd24ddf',\n ELEMENT: 'b238a104-4c12-4f2c-94d9-95df4bd24ddf'\n }\n ]\n }'], - ['2022-12-22T08:13:06.050Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:13:06.052Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:06.054Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:06.561Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:06.569Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (8ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:07.075Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:07.081Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:07.585Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:07.587Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:08.092Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:08.098Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:08.603Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:08.608Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:09.111Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:09.113Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:09.617Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:09.619Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:10.121Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:10.124Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:10.629Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:10.635Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.140Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', ''''], - ['2022-12-22T08:13:11.145Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.217Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/screenshot ', ''''], - ['2022-12-22T08:13:11.622Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/screenshot (336ms)', '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACWAAAAY6CAYAAABXEFcWAAABKWlDQ1BTa2lhAAAokX2QsUvDUBCHP0sXtYuo6OCQsYuaVExb1MFW...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:11.636Z', ' Request DELETE /session/b798ac620a723364eefa550fe820baef ', ''''], - ['2022-12-22T08:13:11.688Z', ' Response 200 DELETE /session/b798ac620a723364eefa550fe820baef (52ms)', '{ value: null }'] - ], - 'rawHttpOutput': [ - ['2022-12-22T08:12:40.323Z', ' Request POST /session ', '{\n capabilities: {\n firstMatch: [ {} ],\n alwaysMatch: {\n browserName: \'chrome\',\n \'goog:chromeOptions\': { w3c: true, args: [] }\n }\n }\n }'], - ['2022-12-22T08:12:41.627Z', ' Response 200 POST /session (1305ms)', '{\n value: {\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'chrome\',\n browserVersion: \'108.0.5359.124\',\n chrome: {\n chromedriverVersion: \'108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})\',\n userDataDir: \'/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/.com.google.Chrome.I4lvi3\'\n },\n \'goog:chromeOptions\': { debuggerAddress: \'localhost:59791\' },\n networkConnectionEnabled: false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac os x\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\',\n \'webauthn:extension:credBlob\': true,\n \'webauthn:extension:largeBlob\': true,\n \'webauthn:virtualAuthenticators\': true\n },\n sessionId: \'b798ac620a723364eefa550fe820baef\'\n }\n }'], - ['2022-12-22T08:12:41.635Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/url ', '{ url: \'https://www.ecosia.org/\' }'], - ['2022-12-22T08:12:57.890Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/url (16256ms)', '{ value: null }'], - ['2022-12-22T08:12:57.898Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:12:57.908Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (11ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'608b7fc9-e6cd-42c3-87c0-cb8d80dd1451\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.910Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'608b7fc9-e6cd-42c3-87c0-cb8d80dd1451\',\n ELEMENT: \'608b7fc9-e6cd-42c3-87c0-cb8d80dd1451\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.920Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (10ms)', '{ value: true }'], - ['2022-12-22T08:12:57.922Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:12:57.926Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (4ms)', '{ value: \'Ecosia - the search engine that plants trees\' }'], - ['2022-12-22T08:12:57.930Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:57.938Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.939Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\',\n ELEMENT: \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.947Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (9ms)', '{ value: true }'], - ['2022-12-22T08:12:57.950Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:57.954Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b\'\n }\n ]\n }'], - ['2022-12-22T08:12:57.955Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear ', '{}'], - ['2022-12-22T08:12:57.971Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/clear (16ms)', '{ value: null }'], - ['2022-12-22T08:12:57.971Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value ', '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }'], - ['2022-12-22T08:12:58.059Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/ba89a8cd-5bf4-4666-85d1-01e1e7b3d97b/value (88ms)', '{ value: null }'], - ['2022-12-22T08:12:58.061Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:58.066Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (5ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\'\n }\n ]\n }'], - ['2022-12-22T08:12:58.067Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\',\n ELEMENT: \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\'\n }\n ]\n }'], - ['2022-12-22T08:12:58.072Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:12:58.074Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:58.077Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (3ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b97d3e55-78a3-45e4-944d-2c467dbd0b7e\'\n }\n ]\n }'], - ['2022-12-22T08:12:58.077Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click ', '{}'], - ['2022-12-22T08:13:05.948Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/element/b97d3e55-78a3-45e4-944d-2c467dbd0b7e/click (7871ms)', '{ value: null }'], - ['2022-12-22T08:13:05.951Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'.layout__content\' }'], - ['2022-12-22T08:13:05.959Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (8ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'54648a7a-b47c-4ff8-996d-270526697f01\'\n }\n ]\n }'], - ['2022-12-22T08:13:05.960Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text ', '\'\''], - ['2022-12-22T08:13:06.038Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/element/54648a7a-b47c-4ff8-996d-270526697f01/text (79ms)', '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:06.042Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:13:06.045Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b238a104-4c12-4f2c-94d9-95df4bd24ddf\'\n }\n ]\n }'], - ['2022-12-22T08:13:06.045Z', ' Request POST /session/b798ac620a723364eefa550fe820baef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'b238a104-4c12-4f2c-94d9-95df4bd24ddf\',\n ELEMENT: \'b238a104-4c12-4f2c-94d9-95df4bd24ddf\'\n }\n ]\n }'], - ['2022-12-22T08:13:06.050Z', ' Response 200 POST /session/b798ac620a723364eefa550fe820baef/execute/sync (5ms)', '{ value: true }'], - ['2022-12-22T08:13:06.052Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:06.054Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:06.561Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:06.569Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (8ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:07.075Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:07.081Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:07.585Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:07.587Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:08.092Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:08.098Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:08.603Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:08.608Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:09.111Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:09.113Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (2ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:09.617Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:09.619Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:10.121Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:10.124Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:10.629Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:10.635Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (7ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.140Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/title ', '\'\''], - ['2022-12-22T08:13:11.145Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/title (6ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.217Z', ' Request GET /session/b798ac620a723364eefa550fe820baef/screenshot ', '\'\''], - ['2022-12-22T08:13:11.622Z', ' Response 200 GET /session/b798ac620a723364eefa550fe820baef/screenshot (336ms)', '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACWAAAAY6CAYAAABXEFcWAAABKWlDQ1BTa2lhAAAokX2QsUvDUBCHP0sXtYuo6OCQsYuaVExb1MFW...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:11.636Z', ' Request DELETE /session/b798ac620a723364eefa550fe820baef ', '\'\''], - ['2022-12-22T08:13:11.688Z', ' Response 200 DELETE /session/b798ac620a723364eefa550fe820baef (52ms)', '{ value: null }'] + sessionId: '', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'skip', + host: 'localhost', + tests: 0, + failures: 0, + errors: 0, + httpOutput: [ + ], + rawHttpOutput: [ ] - } - }, - 'firefox': { - 'ecosia': { - 'reportPrefix': 'FIREFOX_108.0.1__', - 'assertionsCount': 7, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'skipped': [], - 'time': '21.18', - 'timeMs': 21175, - 'completed': { - 'Demo test ecosia.org': { - 'time': '15.78', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 26 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 26 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \'Ecosia\' (3ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element is visible (14ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element is visible (8ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element <.layout__content> contains text \'Nightwatch.js\' (295ms)', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'failure': false - }], - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 5, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '15.78', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 26 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 26 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 15779, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:54 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT' - } - }, - 'timeMs': 15779, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:54 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.396', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 8 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 8 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \'foo\' in 5000ms - expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web" (5100ms)', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png'] - }], - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'tests': 2, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'testcases': { - 'Demo test ecosia.org': { - 'time': '15.78', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 26 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 26 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'Ecosia\'\u001b[0m \u001b[0;90m(3ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(14ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m\u001b[0m is visible \u001b[0;90m(8ms)\u001b[0m', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'stackTrace': '', - 'fullMsg': 'Testing if element \u001b[0;33m<.layout__content>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(295ms)\u001b[0m', - 'failure': false - }], - 'tests': 5, - 'commands': [], - 'passed': 5, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'status': 'pass', - 'steps': [], - 'stackTrace': '', - 'timeMs': 15779, - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:54 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT' - }, - 'Demo test ecosia.org fail': { - 'time': '5.396', - 'assertions': [{ - 'name': 'NightwatchAssertError', - 'message': 'Element was visible after 8 milliseconds.', - 'stackTrace': '', - 'fullMsg': 'Element was visible after 8 milliseconds.', - 'failure': false - }, { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'stackTrace': ' at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'fullMsg': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'failure': 'Expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web"', - 'screenshots': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png'] - }], - 'tests': 2, - 'commands': [], - 'passed': 1, - 'errors': 0, - 'failed': 1, - 'skipped': 0, - 'status': 'fail', - 'steps': [], - 'stackTrace': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' - }, - 'timeMs': 5396, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:15 GMT' + }, + google: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 2, + lastError: null, + skipped: [ + ], + time: '10.68', + timeMs: 10675, + completed: { + 'demo test using expect apis': { + time: '10.68', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 15 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 15 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element <#rso>:first-child> contains text \'Nightwatch.js\' (1069ms)', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(1069ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + tests: 2, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'demo test using expect apis': { + time: '10.68', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Element was visible after 15 milliseconds.', + stackTrace: '', + fullMsg: 'Element was visible after 15 milliseconds.', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(1069ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Testing if element \u001b[0;33m<#rso>:first-child>\u001b[0m contains text \u001b[0;33m\'Nightwatch.js\'\u001b[0m \u001b[0;90m(1069ms)\u001b[0m', + failure: false + } + ], + tests: 2, + commands: [ + ], + passed: 2, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 10675, + startTimestamp: 'Thu, 06 Apr 2023 10:19:35 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:46 GMT' } }, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' + timeMs: 10675, + startTimestamp: 'Thu, 06 Apr 2023 10:19:35 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:46 GMT' + } + }, + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'demo test using expect apis': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'http://google.no' + ], + startTime: 1680776375516, + endTime: 1680776379577, + elapsedTime: 4061, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'isPresent', + args: [ + '[aria-modal="true"][title="Before you continue to Google Search"]' + ], + startTime: 1680776379578, + endTime: 1680776384672, + elapsedTime: 5094, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'waitForElementVisible', + args: [ + 'form[action="/search"] input[type=text]' + ], + startTime: 1680776384675, + endTime: 1680776384690, + elapsedTime: 15, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + 'form[action="/search"] input[type=text]', + 'Nightwatch.js,' + ], + startTime: 1680776384690, + endTime: 1680776384728, + elapsedTime: 38, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'assert.textContains', + args: [ + '#rso>:first-child', + 'Nightwatch.js' + ], + startTime: 1680776384728, + endTime: 1680776385800, + elapsedTime: 1072, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'end', + args: [ + ], + startTime: 1680776385800, + endTime: 1680776386186, + elapsedTime: 386, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + } + }, + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 2, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/google.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:33 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:46 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', + 'moz:accessibilityChecks': false, + 'moz:buildID': '20230321111920', + 'moz:geckodriverVersion': '0.32.0', + 'moz:headless': false, + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93775, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileoRDuKX', + 'moz:shutdownTimeout': 60000, + 'moz:useNonSpecCompliantPointerOrigin': false, + 'moz:webdriverClick': true, + 'moz:windowless': false, + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: 'c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:34.090Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:35.510Z', + ' Response 200 POST /session (1421ms)', + '{\n value: {\n sessionId: 'c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93775,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileoRDuKX',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:35.517Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url ', + '{ url: 'http://google.no' }' + ], + [ + '2023-04-06T10:19:39.576Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url (4059ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:39.580Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:39.588Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.091Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:40.096Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.598Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:40.600Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.103Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:41.111Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.614Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:41.620Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.123Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:42.128Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.630Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:42.637Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.140Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:43.154Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (15ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.656Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:43.659Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.161Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:44.163Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.665Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: '[aria-modal="true"][title="Before you continue to Google Search"]'\n }' + ], + [ + '2023-04-06T10:19:44.669Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.676Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: 'form[action="/search"] input[type=text]'\n }' + ], + [ + '2023-04-06T10:19:44.680Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd11d4330-8ae2-44c8-b64a-3971618fbde5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.682Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync ', + '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd11d4330-8ae2-44c8-b64a-3971618fbde5',\n ELEMENT: 'd11d4330-8ae2-44c8-b64a-3971618fbde5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.689Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:44.691Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: 'css selector',\n value: 'form[action="/search"] input[type=text]'\n }' + ], + [ + '2023-04-06T10:19:44.694Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd11d4330-8ae2-44c8-b64a-3971618fbde5'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.695Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value ', + '{\n text: 'Nightwatch.js',\n value: [\n 'N', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h', '.', 'j',\n 's', ''\n ]\n }' + ], + [ + '2023-04-06T10:19:44.727Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value (32ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:44.730Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:19:44.732Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.235Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:19:45.238Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.741Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: 'css selector', value: '#rso>:first-child' }' + ], + [ + '2023-04-06T10:19:45.744Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '1e7d46f7-02cf-45c5-9db9-6673572e7e78'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:45.746Z', + ' Request GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text ', + '''' + ], + [ + '2023-04-06T10:19:45.797Z', + ' Response 200 GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text (51ms)', + '{\n value: 'Web result with site links\\n' +\n '\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwatch....',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:45.803Z', + ' Request DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d ', + '''' + ], + [ + '2023-04-06T10:19:46.185Z', + ' Response 200 DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d (383ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:34.090Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:35.510Z', + ' Response 200 POST /session (1421ms)', + '{\n value: {\n sessionId: \'c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93775,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofileoRDuKX\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:35.517Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url ', + '{ url: \'http://google.no\' }' + ], + [ + '2023-04-06T10:19:39.576Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/url (4059ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:39.580Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:39.588Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.091Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:40.096Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:40.598Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:40.600Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.103Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:41.111Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:41.614Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:41.620Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (7ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.123Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:42.128Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (6ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:42.630Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:42.637Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (8ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.140Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:43.154Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (15ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:43.656Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:43.659Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.161Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:44.163Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.665Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'[aria-modal="true"][title="Before you continue to Google Search"]\'\n }' + ], + [ + '2023-04-06T10:19:44.669Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:44.676Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'form[action="/search"] input[type=text]\'\n }' + ], + [ + '2023-04-06T10:19:44.680Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d11d4330-8ae2-44c8-b64a-3971618fbde5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.682Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync ', + '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d11d4330-8ae2-44c8-b64a-3971618fbde5\',\n ELEMENT: \'d11d4330-8ae2-44c8-b64a-3971618fbde5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.689Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/execute/sync (7ms)', + '{ value: true }' + ], + [ + '2023-04-06T10:19:44.691Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{\n using: \'css selector\',\n value: \'form[action="/search"] input[type=text]\'\n }' + ], + [ + '2023-04-06T10:19:44.694Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d11d4330-8ae2-44c8-b64a-3971618fbde5\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:44.695Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value ', + '{\n text: \'Nightwatch.js\',\n value: [\n \'N\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\', \'.\', \'j\',\n \'s\', \'\'\n ]\n }' + ], + [ + '2023-04-06T10:19:44.727Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/d11d4330-8ae2-44c8-b64a-3971618fbde5/value (32ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:44.730Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:19:44.732Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (2ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.235Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:19:45.238Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (4ms)', + '{ value: [] }' + ], + [ + '2023-04-06T10:19:45.741Z', + ' Request POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements ', + '{ using: \'css selector\', value: \'#rso>:first-child\' }' + ], + [ + '2023-04-06T10:19:45.744Z', + ' Response 200 POST /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/elements (3ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'1e7d46f7-02cf-45c5-9db9-6673572e7e78\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:45.746Z', + ' Request GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:45.797Z', + ' Response 200 GET /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d/element/1e7d46f7-02cf-45c5-9db9-6673572e7e78/text (51ms)', + '{\n value: \'Web result with site links\\n\' +\n \'\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwatch....\',\n suppressBase64Data: true\n }' + ], + [ + '2023-04-06T10:19:45.803Z', + ' Request DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d ', + '\'\'' + ], + [ + '2023-04-06T10:19:46.185Z', + ' Response 200 DELETE /session/c72af4c6-ebcd-4db4-8c9e-a9b8d593a88d (383ms)', + '{ value: null }' + ] + ] + }, + vueTodoList: { + reportPrefix: 'FIREFOX_111.0.1__', + assertionsCount: 3, + lastError: null, + skipped: [ + ], + time: '1.251', + timeMs: 1251, + completed: { + 'should add a todo using global element()': { + time: '1.251', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li> count to equal: "5" (4ms)', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element <#todo-list ul li> text to contain: "what is nightwatch?" (15ms)', + stackTrace: '', + fullMsg: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li input:checked> count to equal: "3" (4ms)', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + } + ], + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + tests: 3, + status: 'pass', + steps: [ + ], + stackTrace: '', + testcases: { + 'should add a todo using global element()': { + time: '1.251', + assertions: [ + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li> count to equal: \u001b[0;33m"5"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected element <#todo-list ul li> text to contain: \u001b[0;33m"what is nightwatch?"\u001b[0m\u001b[0;90m (15ms)\u001b[0m', + failure: false + }, + { + name: 'NightwatchAssertError', + message: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + stackTrace: '', + fullMsg: 'Expected elements <#todo-list ul li input:checked> count to equal: \u001b[0;33m"3"\u001b[0m\u001b[0;90m (4ms)\u001b[0m', + failure: false + } + ], + tests: 3, + commands: [ + ], + passed: 3, + errors: 0, + failed: 0, + skipped: 0, + status: 'pass', + steps: [ + ], + stackTrace: '', + timeMs: 1251, + startTimestamp: 'Thu, 06 Apr 2023 10:19:47 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:48 GMT' + } }, - 'timeMs': 5396, - 'startTimestamp': 'Thu, 22 Dec 2022 08:13:10 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:15 GMT' + timeMs: 1251, + startTimestamp: 'Thu, 06 Apr 2023 10:19:47 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:48 GMT' } }, - 'completedSections': { - '__global_beforeEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__before_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'navigateTo', - 'args': ['https://www.ecosia.org/'], - 'startTime': 1671696762127, - 'endTime': 1671696774357, - 'elapsedTime': 12230, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + completedSections: { + __global_beforeEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' }, - 'Demo test ecosia.org': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696774361, - 'endTime': 1671696774389, - 'elapsedTime': 28, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['Ecosia'], - 'startTime': 1671696774389, - 'endTime': 1671696774395, - 'elapsedTime': 6, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['input[type=search]'], - 'startTime': 1671696774395, - 'endTime': 1671696774410, - 'elapsedTime': 15, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'setValue', - 'args': ['input[type=search]', 'nightwatch'], - 'startTime': 1671696774410, - 'endTime': 1671696774434, - 'elapsedTime': 24, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.visible', - 'args': ['button[type=submit]'], - 'startTime': 1671696774434, - 'endTime': 1671696774444, - 'elapsedTime': 10, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'click', - 'args': ['button[type=submit]'], - 'startTime': 1671696774444, - 'endTime': 1671696789840, - 'elapsedTime': 15396, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.textContains', - 'args': ['.layout__content', 'Nightwatch.js'], - 'startTime': 1671696789840, - 'endTime': 1671696790137, - 'elapsedTime': 297, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - 'Demo test ecosia.org fail': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'waitForElementVisible', - 'args': ['body'], - 'startTime': 1671696790139, - 'endTime': 1671696790147, - 'elapsedTime': 8, - 'status': 'pass', - 'result': { - 'status': 0 - } - }, { - 'name': 'assert.titleContains', - 'args': ['foo'], - 'startTime': 1671696790147, - 'endTime': 1671696795256, - 'elapsedTime': 5109, - 'status': 'fail', - 'result': { - 'message': 'Testing if the page title contains \'foo\' in 5000ms - expected "contains \'foo\'" but got: "nightwatch - Ecosia - Web" (5100ms)', - 'showDiff': false, - 'name': 'NightwatchAssertError', - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)', - 'beautifiedStack': { - 'filePath': '/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js', - 'error_line_number': 22, - 'codeSnippet': [{ - 'line_number': 20, - 'code': ' browser' - }, { - 'line_number': 21, - 'code': ' .waitForElementVisible(\'body\')' - }, { - 'line_number': 22, - 'code': ' .assert.titleContains(\'foo\')' - }, { - 'line_number': 23, - 'code': ' .assert.visible(\'input[type=search]\')' - }, { - 'line_number': 24, - 'code': ' .setValue(\'input[type=search]\', \'nightwatch\')' - }] - } - }, - 'screenshot': '/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png' - }, { - 'name': 'saveScreenshot', - 'args': ['/Users/binayakghosh/projects/nightwatch-copy/tests_output/screens/ecosia/Demo-test-ecosia.org-fail_FAILED_Dec-22-2022-134315-GMT+0530.png', 'function () { [native code] }'], - 'startTime': 1671696795313, - 'endTime': 1671696795533, - 'elapsedTime': 220, - 'status': 'pass', - 'result': { - 'status': 0 - } - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'fail' - }, - '__after_hook': { - 'time': 0, - 'assertions': [], - 'commands': [{ - 'name': 'end', - 'args': [], - 'startTime': 1671696795535, - 'endTime': 1671696796303, - 'elapsedTime': 768, - 'status': 'pass' - }], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' - }, - '__global_afterEach_hook': { - 'time': 0, - 'assertions': [], - 'commands': [], - 'passed': 0, - 'errors': 0, - 'failed': 0, - 'skipped': 0, - 'tests': 0, - 'status': 'pass' + __before_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + 'should add a todo using global element()': { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'navigateTo', + args: [ + 'https://todo-vue3-vite.netlify.app/' + ], + startTime: 1680776387084, + endTime: 1680776387841, + elapsedTime: 757, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'sendKeys', + args: [ + '#new-todo-input', + 'what is nightwatch?' + ], + startTime: 1680776387841, + endTime: 1680776387864, + elapsedTime: 23, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'click', + args: [ + 'form button[type="submit"]' + ], + startTime: 1680776387865, + endTime: 1680776388087, + elapsedTime: 222, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '#todo-list ul li' + ], + startTime: 1680776388091, + endTime: 1680776388095, + elapsedTime: 4, + status: 'pass', + result: { + } + }, + { + name: 'expect.element', + args: [ + '#todo-list ul li' + ], + startTime: 1680776388096, + endTime: 1680776388111, + elapsedTime: 15, + status: 'pass', + result: { + } + }, + { + name: 'element().findElement', + args: [ + '[object Object]' + ], + startTime: 1680776388111, + endTime: 1680776388114, + elapsedTime: 3, + status: 'pass', + result: { + } + }, + { + name: 'click', + args: [ + '[object Object]' + ], + startTime: 1680776388116, + endTime: 1680776388327, + elapsedTime: 211, + status: 'pass', + result: { + status: 0 + } + }, + { + name: 'expect.elements', + args: [ + '#todo-list ul li input:checked' + ], + startTime: 1680776388328, + endTime: 1680776388332, + elapsedTime: 4, + status: 'pass', + result: { + } + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __after_hook: { + time: 0, + assertions: [ + ], + commands: [ + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' + }, + __global_afterEach_hook: { + time: 0, + assertions: [ + ], + commands: [ + { + name: 'end', + args: [ + 'true' + ], + startTime: 1680776388337, + endTime: 1680776389341, + elapsedTime: 1004, + status: 'pass' + } + ], + passed: 0, + errors: 0, + failed: 0, + skipped: 0, + tests: 0, + status: 'pass' } }, - 'errmessages': [], - 'testsCount': 2, - 'skippedCount': 0, - 'failedCount': 1, - 'errorsCount': 0, - 'passedCount': 6, - 'group': '', - 'modulePath': '/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js', - 'startTimestamp': 'Thu, 22 Dec 2022 08:12:40 GMT', - 'endTimestamp': 'Thu, 22 Dec 2022 08:13:15 GMT', - 'sessionCapabilities': { - 'acceptInsecureCerts': false, - 'browserName': 'firefox', - 'browserVersion': '108.0.1', + errmessages: [ + ], + testsCount: 1, + skippedCount: 0, + failedCount: 0, + errorsCount: 0, + passedCount: 3, + group: '', + modulePath: '/Users/vaibhavsingh/Dev/nightwatch/examples/tests/vueTodoList.js', + startTimestamp: 'Thu, 06 Apr 2023 10:19:45 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:19:48 GMT', + sessionCapabilities: { + acceptInsecureCerts: false, + browserName: 'firefox', + browserVersion: '111.0.1', 'moz:accessibilityChecks': false, - 'moz:buildID': '20221215175817', + 'moz:buildID': '20230321111920', 'moz:geckodriverVersion': '0.32.0', 'moz:headless': false, - 'moz:platformVersion': '22.1.0', - 'moz:processID': 1629, - 'moz:profile': '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/rust_mozprofile7Yt8vc', + 'moz:platformVersion': '22.3.0', + 'moz:processID': 93855, + 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile2iTSVu', 'moz:shutdownTimeout': 60000, 'moz:useNonSpecCompliantPointerOrigin': false, 'moz:webdriverClick': true, 'moz:windowless': false, - 'pageLoadStrategy': 'normal', - 'platformName': 'mac', - 'proxy': {}, - 'setWindowRect': true, - 'strictFileInteractability': false, - 'timeouts': { - 'implicit': 0, - 'pageLoad': 300000, - 'script': 30000 - }, - 'unhandledPromptBehavior': 'dismiss and notify' - }, - 'sessionId': '5ce15e96-1745-4071-b0ba-a21522f69cef', - 'projectName': '', - 'buildName': '', - 'testEnv': 'firefox', - 'isMobile': false, - 'status': 'fail', - 'seleniumLog': '/Users/binayakghosh/projects/nightwatch-copy/logs/ecosia_geckodriver.log', - 'tests': 2, - 'failures': 1, - 'errors': 0, - 'httpOutput': [ - ['2022-12-22T08:12:40.304Z', ' Request POST /session ', '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }'], - ['2022-12-22T08:12:42.123Z', ' Response 200 POST /session (1821ms)', '{\n value: {\n sessionId: '5ce15e96-1745-4071-b0ba-a21522f69cef',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '108.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20221215175817',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.1.0',\n 'moz:processID': 1629,\n 'moz:profile': '/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/rust_mozprofile7Yt8vc',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }'], - ['2022-12-22T08:12:42.127Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url ', '{ url: 'https://www.ecosia.org/' }'], - ['2022-12-22T08:12:54.355Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url (12228ms)', '{ value: null }'], - ['2022-12-22T08:12:54.364Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:12:54.378Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (14ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '202fb5a8-b2a0-4387-82ba-ed00eba69ef6'\n }\n ]\n }'], - ['2022-12-22T08:12:54.380Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '202fb5a8-b2a0-4387-82ba-ed00eba69ef6',\n ELEMENT: '202fb5a8-b2a0-4387-82ba-ed00eba69ef6'\n }\n ]\n }'], - ['2022-12-22T08:12:54.388Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (8ms)', '{ value: true }'], - ['2022-12-22T08:12:54.392Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:12:54.393Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (1ms)', '{ value: 'Ecosia - the search engine that plants trees' }'], - ['2022-12-22T08:12:54.397Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:54.400Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (3ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7c487427-edc6-49f2-b230-e7d7c36a779b'\n }\n ]\n }'], - ['2022-12-22T08:12:54.401Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7c487427-edc6-49f2-b230-e7d7c36a779b',\n ELEMENT: '7c487427-edc6-49f2-b230-e7d7c36a779b'\n }\n ]\n }'], - ['2022-12-22T08:12:54.408Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (7ms)', '{ value: true }'], - ['2022-12-22T08:12:54.410Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'input[type=search]' }'], - ['2022-12-22T08:12:54.412Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '7c487427-edc6-49f2-b230-e7d7c36a779b'\n }\n ]\n }'], - ['2022-12-22T08:12:54.413Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear ', '{}'], - ['2022-12-22T08:12:54.419Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear (7ms)', '{ value: null }'], - ['2022-12-22T08:12:54.419Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value ', '{\n text: 'nightwatch',\n value: [\n 'n', 'i', 'g', 'h',\n 't', 'w', 'a', 't',\n 'c', 'h'\n ]\n }'], - ['2022-12-22T08:12:54.433Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value (14ms)', '{ value: null }'], - ['2022-12-22T08:12:54.436Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:54.437Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2db1076f-3aa3-457d-9eea-3244bd61f510'\n }\n ]\n }'], - ['2022-12-22T08:12:54.438Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2db1076f-3aa3-457d-9eea-3244bd61f510',\n ELEMENT: '2db1076f-3aa3-457d-9eea-3244bd61f510'\n }\n ]\n }'], - ['2022-12-22T08:12:54.442Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:12:54.444Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'button[type=submit]' }'], - ['2022-12-22T08:12:54.448Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2db1076f-3aa3-457d-9eea-3244bd61f510'\n }\n ]\n }'], - ['2022-12-22T08:12:54.449Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click ', '{}'], - ['2022-12-22T08:13:09.839Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click (15390ms)', '{ value: null }'], - ['2022-12-22T08:13:09.843Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: '.layout__content' }'], - ['2022-12-22T08:13:09.846Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9275e380-10a2-4a89-8a2e-ba2c0d54c9b8'\n }\n ]\n }'], - ['2022-12-22T08:13:09.846Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text ', ''''], - ['2022-12-22T08:13:10.135Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text (287ms)', '{\n value: 'Search\\n' +\n 'https://nightwatchjs.org\\n' +\n 'Nightwatch.js | Node.js powered End-to-End testing framework\\n' +\n 'Nightwa...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:10.139Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: 'css selector', value: 'body' }'], - ['2022-12-22T08:13:10.142Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '51b2761e-4769-485c-9591-ad7fe1eb1b0d'\n }\n ]\n }'], - ['2022-12-22T08:13:10.143Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: 'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)',\n args: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '51b2761e-4769-485c-9591-ad7fe1eb1b0d',\n ELEMENT: '51b2761e-4769-485c-9591-ad7fe1eb1b0d'\n }\n ]\n }'], - ['2022-12-22T08:13:10.147Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:13:10.149Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:10.151Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (2ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:10.655Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:10.660Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.164Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:11.167Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (3ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:11.669Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:11.683Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (14ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:12.187Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:12.191Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:12.696Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:12.701Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:13.206Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:13.211Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (6ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:13.717Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:13.721Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:14.225Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:14.230Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:14.735Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:14.740Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:15.244Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', ''''], - ['2022-12-22T08:13:15.248Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: 'nightwatch - Ecosia - Web' }'], - ['2022-12-22T08:13:15.316Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot ', ''''], - ['2022-12-22T08:13:15.523Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot (135ms)', '{\n value: 'iVBORw0KGgoAAAANSUhEUgAACgAAAAZWCAYAAABgI/pGAAAgAElEQVR4XuydB3xT1RfHTxfQARQ6KC2bsrcgIKiggAKCypApU0TZ...',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:15.537Z', ' Request DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef ', ''''], - ['2022-12-22T08:13:16.302Z', ' Response 200 DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef (765ms)', '{ value: null }'] - ], - 'rawHttpOutput': [ - ['2022-12-22T08:12:40.304Z', ' Request POST /session ', '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }'], - ['2022-12-22T08:12:42.123Z', ' Response 200 POST /session (1821ms)', '{\n value: {\n sessionId: \'5ce15e96-1745-4071-b0ba-a21522f69cef\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'108.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20221215175817\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.1.0\',\n \'moz:processID\': 1629,\n \'moz:profile\': \'/var/folders/c4/v7pl5j0s34qg1yb4b34_lg300000gq/T/rust_mozprofile7Yt8vc\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }'], - ['2022-12-22T08:12:42.127Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url ', '{ url: \'https://www.ecosia.org/\' }'], - ['2022-12-22T08:12:54.355Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/url (12228ms)', '{ value: null }'], - ['2022-12-22T08:12:54.364Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:12:54.378Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (14ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'202fb5a8-b2a0-4387-82ba-ed00eba69ef6\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.380Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'202fb5a8-b2a0-4387-82ba-ed00eba69ef6\',\n ELEMENT: \'202fb5a8-b2a0-4387-82ba-ed00eba69ef6\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.388Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (8ms)', '{ value: true }'], - ['2022-12-22T08:12:54.392Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:12:54.393Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (1ms)', '{ value: \'Ecosia - the search engine that plants trees\' }'], - ['2022-12-22T08:12:54.397Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:54.400Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (3ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7c487427-edc6-49f2-b230-e7d7c36a779b\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.401Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7c487427-edc6-49f2-b230-e7d7c36a779b\',\n ELEMENT: \'7c487427-edc6-49f2-b230-e7d7c36a779b\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.408Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (7ms)', '{ value: true }'], - ['2022-12-22T08:12:54.410Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'input[type=search]\' }'], - ['2022-12-22T08:12:54.412Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'7c487427-edc6-49f2-b230-e7d7c36a779b\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.413Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear ', '{}'], - ['2022-12-22T08:12:54.419Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/clear (7ms)', '{ value: null }'], - ['2022-12-22T08:12:54.419Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value ', '{\n text: \'nightwatch\',\n value: [\n \'n\', \'i\', \'g\', \'h\',\n \'t\', \'w\', \'a\', \'t\',\n \'c\', \'h\'\n ]\n }'], - ['2022-12-22T08:12:54.433Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/7c487427-edc6-49f2-b230-e7d7c36a779b/value (14ms)', '{ value: null }'], - ['2022-12-22T08:12:54.436Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:54.437Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2db1076f-3aa3-457d-9eea-3244bd61f510\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.438Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2db1076f-3aa3-457d-9eea-3244bd61f510\',\n ELEMENT: \'2db1076f-3aa3-457d-9eea-3244bd61f510\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.442Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:12:54.444Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'button[type=submit]\' }'], - ['2022-12-22T08:12:54.448Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2db1076f-3aa3-457d-9eea-3244bd61f510\'\n }\n ]\n }'], - ['2022-12-22T08:12:54.449Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click ', '{}'], - ['2022-12-22T08:13:09.839Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/2db1076f-3aa3-457d-9eea-3244bd61f510/click (15390ms)', '{ value: null }'], - ['2022-12-22T08:13:09.843Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'.layout__content\' }'], - ['2022-12-22T08:13:09.846Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (4ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9275e380-10a2-4a89-8a2e-ba2c0d54c9b8\'\n }\n ]\n }'], - ['2022-12-22T08:13:09.846Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text ', '\'\''], - ['2022-12-22T08:13:10.135Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/element/9275e380-10a2-4a89-8a2e-ba2c0d54c9b8/text (287ms)', '{\n value: \'Search\\n\' +\n \'https://nightwatchjs.org\\n\' +\n \'Nightwatch.js | Node.js powered End-to-End testing framework\\n\' +\n \'Nightwa...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:10.139Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements ', '{ using: \'css selector\', value: \'body\' }'], - ['2022-12-22T08:13:10.142Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/elements (2ms)', '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'51b2761e-4769-485c-9591-ad7fe1eb1b0d\'\n }\n ]\n }'], - ['2022-12-22T08:13:10.143Z', ' Request POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync ', '{\n script: \'return (function(){return (function(){var k=this||self;function aa(a){return"string"==typeof a}function ba(a,b){a=a.split(".");var c=k;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a... (44027 characters)\',\n args: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'51b2761e-4769-485c-9591-ad7fe1eb1b0d\',\n ELEMENT: \'51b2761e-4769-485c-9591-ad7fe1eb1b0d\'\n }\n ]\n }'], - ['2022-12-22T08:13:10.147Z', ' Response 200 POST /session/5ce15e96-1745-4071-b0ba-a21522f69cef/execute/sync (4ms)', '{ value: true }'], - ['2022-12-22T08:13:10.149Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:10.151Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (2ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:10.655Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:10.660Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.164Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:11.167Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (3ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:11.669Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:11.683Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (14ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:12.187Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:12.191Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:12.696Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:12.701Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:13.206Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:13.211Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (6ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:13.717Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:13.721Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:14.225Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:14.230Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:14.735Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:14.740Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:15.244Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title ', '\'\''], - ['2022-12-22T08:13:15.248Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/title (5ms)', '{ value: \'nightwatch - Ecosia - Web\' }'], - ['2022-12-22T08:13:15.316Z', ' Request GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot ', '\'\''], - ['2022-12-22T08:13:15.523Z', ' Response 200 GET /session/5ce15e96-1745-4071-b0ba-a21522f69cef/screenshot (135ms)', '{\n value: \'iVBORw0KGgoAAAANSUhEUgAACgAAAAZWCAYAAABgI/pGAAAgAElEQVR4XuydB3xT1RfHTxfQARQ6KC2bsrcgIKiggAKCypApU0TZ...\',\n suppressBase64Data: true\n }'], - ['2022-12-22T08:13:15.537Z', ' Request DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef ', '\'\''], - ['2022-12-22T08:13:16.302Z', ' Response 200 DELETE /session/5ce15e96-1745-4071-b0ba-a21522f69cef (765ms)', '{ value: null }'] - ], - 'globalErrorRegister': [' \u001b[1;31m→ ✖ \u001b[1;31mNightwatchAssertError\u001b[0m\n \u001b[0;31mTesting if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m\u001b[0m\n\u001b[0;33m\n Error location:\u001b[0m\n /Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n 20 | browser\n 21 | .waitForElementVisible(\'body\')\n \u001b[0;37m\u001b[41m 22 | .assert.titleContains(\'foo\') \u001b[0m\n 23 | .assert.visible(\'input[type=search]\')\n 24 | .setValue(\'input[type=search]\', \'nightwatch\')\n –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––\n\u001b[0m'] + pageLoadStrategy: 'normal', + platformName: 'mac', + proxy: { + }, + setWindowRect: true, + strictFileInteractability: false, + timeouts: { + implicit: 0, + pageLoad: 300000, + script: 30000 + }, + unhandledPromptBehavior: 'dismiss and notify' + }, + sessionId: '02cdc21b-3ae3-4f80-b595-07f8498c4a11', + projectName: '', + buildName: '', + testEnv: 'firefox', + isMobile: false, + status: 'pass', + seleniumLog: '/Users/vaibhavsingh/Dev/nightwatch/logs/vueTodoList_geckodriver.log', + host: 'localhost', + tests: 1, + failures: 0, + errors: 0, + httpOutput: [ + [ + '2023-04-06T10:19:45.864Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: 'firefox' } }\n }' + ], + [ + '2023-04-06T10:19:47.078Z', + ' Response 200 POST /session (1217ms)', + '{\n value: {\n sessionId: '02cdc21b-3ae3-4f80-b595-07f8498c4a11',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: 'firefox',\n browserVersion: '111.0.1',\n 'moz:accessibilityChecks': false,\n 'moz:buildID': '20230321111920',\n 'moz:geckodriverVersion': '0.32.0',\n 'moz:headless': false,\n 'moz:platformVersion': '22.3.0',\n 'moz:processID': 93855,\n 'moz:profile': '/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile2iTSVu',\n 'moz:shutdownTimeout': 60000,\n 'moz:useNonSpecCompliantPointerOrigin': false,\n 'moz:webdriverClick': true,\n 'moz:windowless': false,\n pageLoadStrategy: 'normal',\n platformName: 'mac',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: 'dismiss and notify'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:47.085Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url ', + '{ url: 'https://todo-vue3-vite.netlify.app/' }' + ], + [ + '2023-04-06T10:19:47.840Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url (755ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.843Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#new-todo-input' }' + ], + [ + '2023-04-06T10:19:47.848Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (6ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'cbf47355-2c00-4daf-b3b5-8179d43d1e88'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.851Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value ', + '{\n text: 'what is nightwatch?',\n value: [\n 'w', 'h', 'a', 't', ' ',\n 'i', 's', ' ', 'n', 'i',\n 'g', 'h', 't', 'w', 'a',\n 't', 'c', 'h', '?'\n ]\n }' + ], + [ + '2023-04-06T10:19:47.863Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value (13ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.867Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: 'form button[type="submit"]' }' + ], + [ + '2023-04-06T10:19:47.871Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (5ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.873Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.087Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click (215ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.092Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#todo-list ul li' }' + ], + [ + '2023-04-06T10:19:48.094Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9fba7102-78a1-4f16-8085-471f605574cf'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd8c3dbca-d8d8-4395-bdee-5dd16a889d37'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '320b0952-82ca-4c8d-b91b-36141f695c14'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f8514d2e-85c6-4991-8920-31e10a6d7f88'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2bfecd6d-d71c-4946-97bd-5521f6a31055'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.096Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#todo-list ul li' }' + ], + [ + '2023-04-06T10:19:48.098Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9fba7102-78a1-4f16-8085-471f605574cf'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'd8c3dbca-d8d8-4395-bdee-5dd16a889d37'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '320b0952-82ca-4c8d-b91b-36141f695c14'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'f8514d2e-85c6-4991-8920-31e10a6d7f88'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '2bfecd6d-d71c-4946-97bd-5521f6a31055'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.099Z', + ' Request GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text ', + '''' + ], + [ + '2023-04-06T10:19:48.110Z', + ' Response 200 GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text (11ms)', + '{\n value: 'new taskwhat is nightwatch?\\n' +\n 'Edit\\n' +\n 'New Taskwhat Is Nightwatch?\\n' +\n 'Delete\\n' +\n 'New Taskwhat Is Nightwatch?'\n }' + ], + [ + '2023-04-06T10:19:48.112Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element ', + '{ using: 'css selector', value: 'input[type="checkbox"]' }' + ], + [ + '2023-04-06T10:19:48.114Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element (2ms)', + '{\n value: {\n 'element-6066-11e4-a52e-4f735466cecf': '9db02cb5-bb43-4ef1-b935-38a417240ee2'\n }\n }' + ], + [ + '2023-04-06T10:19:48.117Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.327Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click (209ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.329Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: 'css selector', value: '#todo-list ul li input:checked' }' + ], + [ + '2023-04-06T10:19:48.331Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n 'element-6066-11e4-a52e-4f735466cecf': 'a6373a47-f735-4162-bb2d-36b5aa4756a4'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '56a696cc-b2f5-4300-8428-0bcf93409417'\n },\n {\n 'element-6066-11e4-a52e-4f735466cecf': '9db02cb5-bb43-4ef1-b935-38a417240ee2'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.340Z', + ' Request DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 ', + '''' + ], + [ + '2023-04-06T10:19:49.340Z', + ' Response 200 DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 (1000ms)', + '{ value: null }' + ] + ], + rawHttpOutput: [ + [ + '2023-04-06T10:19:45.864Z', + ' Request POST /session ', + '{\n capabilities: { firstMatch: [ {} ], alwaysMatch: { browserName: \'firefox\' } }\n }' + ], + [ + '2023-04-06T10:19:47.078Z', + ' Response 200 POST /session (1217ms)', + '{\n value: {\n sessionId: \'02cdc21b-3ae3-4f80-b595-07f8498c4a11\',\n capabilities: {\n acceptInsecureCerts: false,\n browserName: \'firefox\',\n browserVersion: \'111.0.1\',\n \'moz:accessibilityChecks\': false,\n \'moz:buildID\': \'20230321111920\',\n \'moz:geckodriverVersion\': \'0.32.0\',\n \'moz:headless\': false,\n \'moz:platformVersion\': \'22.3.0\',\n \'moz:processID\': 93855,\n \'moz:profile\': \'/var/folders/3j/vnc2ktf17bq7qtb8qstq1fk40000gq/T/rust_mozprofile2iTSVu\',\n \'moz:shutdownTimeout\': 60000,\n \'moz:useNonSpecCompliantPointerOrigin\': false,\n \'moz:webdriverClick\': true,\n \'moz:windowless\': false,\n pageLoadStrategy: \'normal\',\n platformName: \'mac\',\n proxy: {},\n setWindowRect: true,\n strictFileInteractability: false,\n timeouts: { implicit: 0, pageLoad: 300000, script: 30000 },\n unhandledPromptBehavior: \'dismiss and notify\'\n }\n }\n }' + ], + [ + '2023-04-06T10:19:47.085Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url ', + '{ url: \'https://todo-vue3-vite.netlify.app/\' }' + ], + [ + '2023-04-06T10:19:47.840Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/url (755ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.843Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#new-todo-input\' }' + ], + [ + '2023-04-06T10:19:47.848Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (6ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'cbf47355-2c00-4daf-b3b5-8179d43d1e88\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.851Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value ', + '{\n text: \'what is nightwatch?\',\n value: [\n \'w\', \'h\', \'a\', \'t\', \' \',\n \'i\', \'s\', \' \', \'n\', \'i\',\n \'g\', \'h\', \'t\', \'w\', \'a\',\n \'t\', \'c\', \'h\', \'?\'\n ]\n }' + ], + [ + '2023-04-06T10:19:47.863Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/cbf47355-2c00-4daf-b3b5-8179d43d1e88/value (13ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:47.867Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'form button[type="submit"]\' }' + ], + [ + '2023-04-06T10:19:47.871Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (5ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:47.873Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.087Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/4588a889-58e9-4d3d-87e4-ab0e6fe6d9ed/click (215ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.092Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li\' }' + ], + [ + '2023-04-06T10:19:48.094Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9fba7102-78a1-4f16-8085-471f605574cf\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d8c3dbca-d8d8-4395-bdee-5dd16a889d37\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'320b0952-82ca-4c8d-b91b-36141f695c14\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f8514d2e-85c6-4991-8920-31e10a6d7f88\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2bfecd6d-d71c-4946-97bd-5521f6a31055\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.096Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li\' }' + ], + [ + '2023-04-06T10:19:48.098Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9fba7102-78a1-4f16-8085-471f605574cf\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'d8c3dbca-d8d8-4395-bdee-5dd16a889d37\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'320b0952-82ca-4c8d-b91b-36141f695c14\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'f8514d2e-85c6-4991-8920-31e10a6d7f88\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'2bfecd6d-d71c-4946-97bd-5521f6a31055\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.099Z', + ' Request GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text ', + '\'\'' + ], + [ + '2023-04-06T10:19:48.110Z', + ' Response 200 GET /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/text (11ms)', + '{\n value: \'new taskwhat is nightwatch?\\n\' +\n \'Edit\\n\' +\n \'New Taskwhat Is Nightwatch?\\n\' +\n \'Delete\\n\' +\n \'New Taskwhat Is Nightwatch?\'\n }' + ], + [ + '2023-04-06T10:19:48.112Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element ', + '{ using: \'css selector\', value: \'input[type="checkbox"]\' }' + ], + [ + '2023-04-06T10:19:48.114Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/2bfecd6d-d71c-4946-97bd-5521f6a31055/element (2ms)', + '{\n value: {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9db02cb5-bb43-4ef1-b935-38a417240ee2\'\n }\n }' + ], + [ + '2023-04-06T10:19:48.117Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click ', + '{}' + ], + [ + '2023-04-06T10:19:48.327Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/element/9db02cb5-bb43-4ef1-b935-38a417240ee2/click (209ms)', + '{ value: null }' + ], + [ + '2023-04-06T10:19:48.329Z', + ' Request POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements ', + '{ using: \'css selector\', value: \'#todo-list ul li input:checked\' }' + ], + [ + '2023-04-06T10:19:48.331Z', + ' Response 200 POST /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11/elements (2ms)', + '{\n value: [\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'a6373a47-f735-4162-bb2d-36b5aa4756a4\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'56a696cc-b2f5-4300-8428-0bcf93409417\'\n },\n {\n \'element-6066-11e4-a52e-4f735466cecf\': \'9db02cb5-bb43-4ef1-b935-38a417240ee2\'\n }\n ]\n }' + ], + [ + '2023-04-06T10:19:48.340Z', + ' Request DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 ', + '\'\'' + ], + [ + '2023-04-06T10:19:49.340Z', + ' Response 200 DELETE /session/02cdc21b-3ae3-4f80-b595-07f8498c4a11 (1000ms)', + '{ value: null }' + ] + ] } } }, - 'lastError': { - 'name': 'NightwatchAssertError', - 'message': 'Testing if the page title contains \u001b[0;33m\'foo\'\u001b[0m in 5000ms - expected \u001b[0;32m"contains \'foo\'"\u001b[0m but got: \u001b[0;31m"nightwatch - Ecosia - Web"\u001b[0m \u001b[0;90m(5100ms)\u001b[0m', - 'showDiff': false, - 'abortOnFailure': true, - 'stack': 'Error\n at Proxy. (/Users/binayakghosh/projects/nightwatch-copy/lib/api/index.js:149:30)\n at DescribeInstance. (/Users/binayakghosh/projects/nightwatch-copy/examples/tests/ecosia.js:22:15)\n at Context.call (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/context.js:476:35)\n at TestCase.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:80)\n at Runnable.run (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:893:49)\n at TestSuite.handleRunnable (/Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:908:33)\n at /Users/binayakghosh/projects/nightwatch-copy/lib/testsuite/index.js:743:21\n at async DefaultRunner.runTestSuite (/Users/binayakghosh/projects/nightwatch-copy/lib/runner/test-runners/default.js:76:7)' + elapsedTime: '94.14', + startTimestamp: 'Thu, 06 Apr 2023 10:18:28 GMT', + endTimestamp: 'Thu, 06 Apr 2023 10:20:02 GMT', + lastError: { + name: 'NightwatchAssertError', + message: 'Timed out while waiting for element <#search_form_input_homepage> to be present for 5000 milliseconds. - expected \u001b[0;32m"visible"\u001b[0m but got: \u001b[0;31m"not found"\u001b[0m \u001b[0;90m(5088ms)\u001b[0m', + showDiff: false, + abortOnFailure: true, + waitFor: true, + stack: 'Error\n at DescribeInstance. (/Users/vaibhavsingh/Dev/nightwatch/examples/tests/duckDuckGo.js:8:8)\n at Context.call (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/context.js:478:35)\n at TestCase.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/testcase.js:58:31)\n at Runnable.__runFn (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:80)\n at Runnable.run (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/runnable.js:126:21)\n at TestSuite.executeRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:912:49)\n at TestSuite.handleRunnable (/Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:927:33)\n at /Users/vaibhavsingh/Dev/nightwatch/lib/testsuite/index.js:759:21\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async DefaultRunner.runTestSuite (/Users/vaibhavsingh/Dev/nightwatch/lib/runner/test-runners/default.js:78:7)' } }; diff --git a/test/lib/command-mocks.js b/test/lib/command-mocks.js index 63ffd65a2f..8c08da65b3 100644 --- a/test/lib/command-mocks.js +++ b/test/lib/command-mocks.js @@ -267,7 +267,27 @@ module.exports = { value }) }, true); - }, + }, + + w3cSelected(elementId ='5cc459b8-36a8-3042-8b4a-258883ea642b', value = true) { + MockServer.addMock({ + url: `/session/13521-10219-202/element/${elementId}/selected`, + method: 'GET', + response: JSON.stringify({ + value + }) + }, true); + }, + + w3cEnabled(elementId ='5cc459b8-36a8-3042-8b4a-258883ea642b', value = true) { + MockServer.addMock({ + url: `/session/13521-10219-202/element/${elementId}/enabled`, + method: 'GET', + response: JSON.stringify({ + value + }) + }); + }, findElements({using = 'css selector', value = '#container', response = null, times = 0}) { const mockOpts = { diff --git a/test/sampletests/withverify/verifySampleFailures.js b/test/sampletests/withverify/verifySampleFailures.js index 2164d7d6ae..9df9a259eb 100644 --- a/test/sampletests/withverify/verifySampleFailures.js +++ b/test/sampletests/withverify/verifySampleFailures.js @@ -1,17 +1,21 @@ module.exports = { before(client) { client.globals.calls++; + client.url('http://localhost'); }, demoTest(client) { - client.url('http://localhost') - .verify.equal(0, 1, 'custom message') - .verify.elementPresent('#badElement') + client.verify.equal(0, 1, 'custom message') .verify.elementPresent('#weblogin') - .end(); + .verify.elementPresent('#badElement'); + }, + + demoTest1(client) { + client.verify.equal(0, 0, 'custom message'); }, after(client, callback) { + client.end(); client.globals.calls++; callback(); } diff --git a/test/src/api/assertions/testHasAttribute.js b/test/src/api/assertions/testHasAttribute.js index 390aa7ed14..8037314b18 100644 --- a/test/src/api/assertions/testHasAttribute.js +++ b/test/src/api/assertions/testHasAttribute.js @@ -13,7 +13,7 @@ describe('assert.hasAttribute', function () { return assertionTest({ args: ['.test_element', 'data-test', 'Test message'], commandResult: { - value: [{name: 'data-track'}, {name: 'data-test'}] + value: 'data-track' }, assertMessage: true, assertion({instance, failure}) { @@ -28,7 +28,7 @@ describe('assert.hasAttribute', function () { return assertionTest({ args: ['.test_element', 'data-test'], commandResult: { - value: [{name: 'data-track'}] + value: 'data-track' }, negate: true, assertion({instance, queueOpts, message}) { @@ -36,8 +36,8 @@ describe('assert.hasAttribute', function () { assert.strictEqual(queueOpts.negate, true); assert.strictEqual(instance.hasFailure(), false); - assert.deepStrictEqual(instance.getValue(), ['data-track']); - assert.deepStrictEqual(instance.getActual(), ['data-track']); + assert.deepStrictEqual(instance.getValue(), 'data-track'); + assert.deepStrictEqual(instance.getActual(), 'data-track'); assert.strictEqual(instance.message, 'Testing if element <.test_element> doesn\'t have attribute \'data-test\''); assert.ok(message.startsWith('Testing if element <.test_element> doesn\'t have attribute \'data-test\''), message); } @@ -48,15 +48,15 @@ describe('assert.hasAttribute', function () { return assertionTest({ args: ['.test_element', 'data-test'], commandResult: { - value: [{name: 'data-test'}] + value: 'data-test' }, negate: true, assertError: true, assertion({instance, queueOpts, err}) { assert.strictEqual(queueOpts.negate, true); assert.strictEqual(instance.hasFailure(), false); - assert.deepStrictEqual(instance.getValue(), ['data-test']); - assert.deepStrictEqual(instance.getActual(), ['data-test']); + assert.deepStrictEqual(instance.getValue(), 'data-test'); + assert.deepStrictEqual(instance.getActual(), 'data-test'); assert.strictEqual(err.message, `Testing if element <.test_element> doesn't have attribute 'data-test' in 5ms - expected "has not data-test" but got: "data-test" (${instance.elapsedTime}ms)`); } }); @@ -66,13 +66,13 @@ describe('assert.hasAttribute', function () { return assertionTest({ args: [{selector: '.test_element'}, 'data-test'], commandResult: { - value: [{name: 'data-test'}] + value: 'data-test' }, assertResult: true, assertion({instance, failure, message, err}) { assert.strictEqual(err, undefined); assert.deepStrictEqual(instance.options, {elementSelector: true}); - assert.deepStrictEqual(instance.getActual(), ['data-test']); + assert.deepStrictEqual(instance.getActual(), 'data-test'); assert.strictEqual(instance.hasFailure(), false); assert.ok(message.startsWith('Testing if element <.test_element> has attribute \'data-test\''), message); assert.strictEqual(failure, false); @@ -84,33 +84,13 @@ describe('assert.hasAttribute', function () { return assertionTest({ args: ['.test_element', 'data-test', 'Test message'], commandResult: { - value: [{name: 'not_expected'}] + value: null }, assertError: true, assertResult: true, assertion({instance, failure}) { - assert.deepStrictEqual(instance.getActual(), ['not_expected']); - assert.strictEqual(failure, 'Expected "has data-test" but got: "not_expected"'); - } - }); - }); - - it('hasAttribute assertion - element not found', function() { - return assertionTest({ - args: ['.test_element', 'data-test', 'Test attribute %s from element "%s" == %s'], - commandResult: { - status: -1, - value: [] - }, - assertError: true, - assertFailure: true, - assertResult: true, - assertion({instance, failure, err}) { - assert.strictEqual(instance.getActual(), 'element could not be located'); - assert.strictEqual(instance.expected(), 'has data-test'); - assert.strictEqual(instance.getValue(), null); - assert.strictEqual(failure, 'Expected "has data-test" but got: "element could not be located"'); - assert.strictEqual(err.message, `Test attribute <.test_element> from element "'data-test'" == %s in 5ms - expected "has data-test" but got: "element could not be located" (${instance.elapsedTime}ms)`); + assert.deepStrictEqual(instance.getActual(), null); + assert.strictEqual(failure, 'Expected "has data-test" but got: "null"'); } }); }); @@ -132,4 +112,17 @@ describe('assert.hasAttribute', function () { } }); }); + + it('hasAttribute assertion failed for wrong parameters', function () { + return assertionTest({ + args: ['.test_element', ['data-test', 'dummy'], 'Test message'], + commandResult: { + value: 'data-track' + }, + assertMessage: true + }).catch((err) => { + assert.ok(err instanceof Error); + assert.strictEqual(err.message, 'Error while running "assert.hasAttribute" command: Expected attribute must be a string'); + }); + }); }); diff --git a/test/src/api/commands/client/testWaitUntil.js b/test/src/api/commands/client/testWaitUntil.js index 51583cea85..d04108b2ad 100644 --- a/test/src/api/commands/client/testWaitUntil.js +++ b/test/src/api/commands/client/testWaitUntil.js @@ -252,5 +252,38 @@ describe('.waitUntil()', function () { this.client.start(done); }); + + it('client.waitUntil() function failure with custom waitForConditionPollInterval', function (done) { + let tries = 0; + let startTime = new Date().valueOf(); + let timeDiff; + const maxTimeout = 100; + const client = this.client.api; + let result; + + client.globals.waitForConditionPollInterval = 11; + + this.client.api.waitUntil(function () { + assert.deepStrictEqual(this.options, client.options); + tries++; + + return false; + }, maxTimeout, null, 'custom error message', function(response) { + timeDiff = new Date().valueOf() - startTime; + result = response; + }); + + this.client.start(err => { + try { + assert.ok(err instanceof Error); + assert.ok(timeDiff <= maxTimeout+100, `Expected lower than ${maxTimeout}, but got ${timeDiff}`); + assert.strictEqual(result.status, -1); + assert.ok(tries > 5); + done(); + } catch (err) { + done(err); + } + }); + }); }); }); diff --git a/test/src/api/commands/element/testSubmitForm.js b/test/src/api/commands/element/testSubmitForm.js index 4eabc17fc7..35839fd410 100644 --- a/test/src/api/commands/element/testSubmitForm.js +++ b/test/src/api/commands/element/testSubmitForm.js @@ -1,18 +1,18 @@ const assert = require('assert'); -const MockServer = require('../../../../lib/mockserver.js'); +const MockServer = require('../../../../lib/mockserver.js'); const CommandGlobals = require('../../../../lib/globals/commands.js'); -describe('submitForm', function() { - before(function(done) { +describe('submitForm', function () { + before(function (done) { CommandGlobals.beforeEach.call(this, done); }); - after(function(done) { + after(function (done) { CommandGlobals.afterEach.call(this, done); }); - // TODO: enable when https://github.com/SeleniumHQ/selenium/pull/11883 gets merged - xit('client.submitForm()', function(done) { + + it('client.submitForm()', function (done) { MockServer.addMock({ url: '/wd/hub/session/1352110219202/execute/sync', method: 'POST', diff --git a/test/src/api/commands/web-element/testFindAllByText.js b/test/src/api/commands/web-element/testFindAllByText.js index 1d9fdce3f6..ba8eb37615 100644 --- a/test/src/api/commands/web-element/testFindAllByText.js +++ b/test/src/api/commands/web-element/testFindAllByText.js @@ -18,7 +18,7 @@ describe('element().findAllByText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//*[text()="Email"]' + value: './/*[text()="Email"]' }, method: 'POST', response: JSON.stringify({ @@ -64,7 +64,7 @@ describe('element().findAllByText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//*[contains(text(),"Email")]' + value: './/*[contains(text(),"Email")]' }, method: 'POST', response: JSON.stringify({ @@ -97,7 +97,7 @@ describe('element().findAllByText() commands', function () { url: '/session/13521-10219-202/elements', postdata: { using: 'xpath', - value: '//*[text()="Email"]' + value: './/*[text()="Email"]' }, method: 'POST', response: JSON.stringify({ diff --git a/test/src/api/commands/web-element/testFindByLabelText.js b/test/src/api/commands/web-element/testFindByLabelText.js index 1907697b4e..e9ec85cdb8 100644 --- a/test/src/api/commands/web-element/testFindByLabelText.js +++ b/test/src/api/commands/web-element/testFindByLabelText.js @@ -5,12 +5,11 @@ const CommandGlobals = require('../../../../lib/globals/commands-w3c.js'); const Element = require('../../../../../lib/element/index.js'); describe('.findByLabelText() commands', function () { - this.timeout(10000000); - before(function (done) { + beforeEach(function (done) { CommandGlobals.beforeEach.call(this, done); }); - after(function (done) { + afterEach(function (done) { CommandGlobals.afterEach.call(this, done); }); @@ -20,7 +19,7 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[text()="Email"]' + value: './/label[text()="Email"]' }, method: 'POST', response: JSON.stringify({ @@ -35,7 +34,7 @@ describe('.findByLabelText() commands', function () { }) }, true) .addMock({ - url: '/session/13521-10219-202/element/0/elements', + url: '/session/13521-10219-202/elements', postdata: { using: 'css selector', value: 'input[id="email"]' @@ -52,7 +51,8 @@ describe('.findByLabelText() commands', function () { assert.strictEqual(typeof resultPromise.find, 'function'); assert.strictEqual(typeof resultPromise.getValue, 'function'); assert.strictEqual(typeof resultPromise.assert, 'object'); - assert.strictEqual(await resultPromise.getId(), '2'); + const id = await resultPromise.getId(); + assert.strictEqual(id, '2'); const result = await resultPromise; assert.strictEqual(result instanceof WebElement, true); @@ -65,7 +65,7 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[contains(text(),"Email")]' + value: './/label[contains(text(),"Email")]' }, method: 'POST', response: JSON.stringify({ @@ -80,7 +80,7 @@ describe('.findByLabelText() commands', function () { }) }, true) .addMock({ - url: '/session/13521-10219-202/element/0/elements', + url: '/session/13521-10219-202/elements', postdata: { using: 'css selector', value: 'input[id="email"]' @@ -104,20 +104,19 @@ describe('.findByLabelText() commands', function () { assert.strictEqual(await result.getId(), '2'); }); - // FIXME: unstable test - xit('test .findByLabelText() (findByAriaLabelled)', async function() { + it('test .findByLabelText() (findByAriaLabelled)', async function() { MockServer .addMock({ url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[text()="Email"]' + value: './/label[text()="Email"]' }, method: 'POST', response: JSON.stringify({ value: [{'element-6066-11e4-a52e-4f735466cecf': '1'}] }) - }, true, true) + }, true) .addMock({ url: '/session/13521-10219-202/execute/sync', method: 'POST', @@ -133,7 +132,7 @@ describe('.findByLabelText() commands', function () { }) }, true) .addMock({ - url: '/session/13521-10219-202/element/0/elements', + url: '/session/13521-10219-202/elements', postdata: { using: 'css selector', value: 'input[aria-labelledby="email-label"]' @@ -163,14 +162,13 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[text()="Email"]' + value: './/label[text()="Email"]' }, method: 'POST', response: JSON.stringify({ value: [{'element-6066-11e4-a52e-4f735466cecf': '1'}] - }), - times: 3 - }) + }) + }, true) .addMock({ url: '/session/13521-10219-202/execute/sync', method: 'POST', @@ -179,14 +177,14 @@ describe('.findByLabelText() commands', function () { }) }, true, true) .addMock({ - url: '/session/13521-10219-202/element/1/elements', + url: '/session/13521-10219-202/element/1/element', postdata: { using: 'css selector', value: 'input' }, method: 'POST', response: JSON.stringify({ - value: [{'element-6066-11e4-a52e-4f735466cecf': '2'}] + value: {'element-6066-11e4-a52e-4f735466cecf': '2'} }) }, true); @@ -209,7 +207,7 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[text()="Email"]' + value: './/label[text()="Email"]' }, method: 'POST', response: JSON.stringify({ @@ -221,7 +219,7 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[*[text() = "Email"]]' + value: './/label[*[text()="Email"]]' }, method: 'POST', response: JSON.stringify({ @@ -229,25 +227,31 @@ describe('.findByLabelText() commands', function () { }) }, true) .addMock({ - url: '/session/13521-10219-202/element/1/elements', + url: '/session/13521-10219-202/element/1/element', postdata: { using: 'css selector', value: 'input' }, method: 'POST', response: JSON.stringify({ - value: [{'element-6066-11e4-a52e-4f735466cecf': '2'}] + value: {'element-6066-11e4-a52e-4f735466cecf': '2'} }) }, true); - const resultPromise = this.client.api.element('#signupSection').findByLabelText('Email'); + const resultPromise = this.client.api.element('#signupSection').findByLabelText('Email', { + timeout: 200, + retryInterval: 100 + }); + assert.strictEqual(resultPromise instanceof Element, false); assert.strictEqual(resultPromise instanceof Promise, true); assert.strictEqual(typeof resultPromise.find, 'function'); assert.strictEqual(typeof resultPromise.getValue, 'function'); assert.strictEqual(typeof resultPromise.assert, 'object'); - assert.strictEqual(await resultPromise.getId(), '2'); + const id = await resultPromise.getId(); + assert.strictEqual(id, '2'); + // const result = await resultPromise; assert.strictEqual(result instanceof WebElement, true); assert.strictEqual(await result.getId(), '2'); @@ -259,7 +263,7 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[text()="Email"]' + value: './/label[text()="Email"]' }, method: 'POST', response: JSON.stringify({ @@ -271,13 +275,14 @@ describe('.findByLabelText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//label[*[text() = "Email"]]' + value: './/label[*[text()="Email"]]' }, method: 'POST', response: JSON.stringify({ value: [] - }) - }, true) + }), + times: 3 + }) .addMock({ url: '/session/13521-10219-202/element/0/elements', postdata: { @@ -290,7 +295,10 @@ describe('.findByLabelText() commands', function () { }) }, true); - const resultPromise = this.client.api.element('#signupSection').findByLabelText('Email'); + const resultPromise = this.client.api.element('#signupSection').findByLabelText('Email', { + timeout: 200, + retryInterval: 100 + }); assert.strictEqual(resultPromise instanceof Element, false); assert.strictEqual(resultPromise instanceof Promise, true); assert.strictEqual(typeof resultPromise.find, 'function'); diff --git a/test/src/api/commands/web-element/testFindByText.js b/test/src/api/commands/web-element/testFindByText.js index 3ce32d7a02..af52bd8950 100644 --- a/test/src/api/commands/web-element/testFindByText.js +++ b/test/src/api/commands/web-element/testFindByText.js @@ -18,7 +18,7 @@ describe('.findByText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//*[text()="Submit"]' + value: './/*[text()="Submit"]' }, method: 'POST', response: JSON.stringify({ @@ -48,7 +48,7 @@ describe('.findByText() commands', function () { url: '/session/13521-10219-202/element/0/elements', postdata: { using: 'xpath', - value: '//*[contains(text(),"Submit")]' + value: './/*[contains(text(),"Submit")]' }, method: 'POST', response: JSON.stringify({ diff --git a/test/src/api/commands/web-element/testSendKeys.js b/test/src/api/commands/web-element/testSendKeys.js index 6bff24bed4..b69b993742 100644 --- a/test/src/api/commands/web-element/testSendKeys.js +++ b/test/src/api/commands/web-element/testSendKeys.js @@ -78,7 +78,7 @@ describe('element().sendKeys() command', function () { }) }, true); - const resultPromise = this.client.api.element('#signupSection').find('input[name=q]').sendKeys('nightwatch'); + const resultPromise = this.client.api.element('#signupSection').find('input[name=q]').sendKeys('night', 'watch'); // neither an instance of Element or Promise, but an instance of ScopedWebElement. assert.strictEqual(resultPromise instanceof Element, false); assert.strictEqual(typeof resultPromise.find, 'undefined'); @@ -116,7 +116,7 @@ describe('element().sendKeys() command', function () { }) }, true); - const resultPromise = this.client.api.element.find('#signupSection').find('input[name=q]').sendKeys('nightwatch'); + const resultPromise = this.client.api.element.find('#signupSection').find('input[name=q]').sendKeys(['night', 'watch']); // neither an instance of Element or Promise, but an instance of ScopedWebElement. assert.strictEqual(resultPromise instanceof Element, false); assert.strictEqual(typeof resultPromise.find, 'undefined'); diff --git a/test/src/api/commands/web-element/testSetValue.js b/test/src/api/commands/web-element/testSetValue.js new file mode 100644 index 0000000000..fa05494baf --- /dev/null +++ b/test/src/api/commands/web-element/testSetValue.js @@ -0,0 +1,153 @@ +const assert = require('assert'); +const {WebElement} = require('selenium-webdriver'); +const MockServer = require('../../../../lib/mockserver.js'); +const CommandGlobals = require('../../../../lib/globals/commands-w3c.js'); +const Element = require('../../../../../lib/element/index.js'); + +describe('element().setValue() command', function () { + before(function (done) { + CommandGlobals.beforeEach.call(this, done); + }); + + after(function (done) { + CommandGlobals.afterEach.call(this, done); + }); + + it('test .element().setValue()', async function() { + MockServer + .addMock({ + url: '/session/13521-10219-202/elements', + postdata: { + using: 'css selector', + value: 'input[name=q]' + }, + method: 'POST', + response: JSON.stringify({ + value: [{'element-6066-11e4-a52e-4f735466cecf': '9'}] + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/9/clear', + method: 'POST', + postdata: {}, + response: JSON.stringify({ + value: null + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/9/value', + method: 'POST', + postdata: { + text: 'nightwatch', + value: [ + 'n', 'i', 'g', 'h', 't', 'w', 'a', 't', 'c', 'h' + ] + }, + response: JSON.stringify({ + value: null + }) + }, true); + + const resultPromise = this.client.api.element('input[name=q]').setValue('nightwatch'); + // neither an instance of Element or Promise, but an instance of ScopedWebElement. + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + assert.strictEqual(resultPromise instanceof Promise, false); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, true); + assert.strictEqual(await result.getId(), '9'); + }); + + it('test .element().find().setValue()', async function() { + MockServer + .addMock({ + url: '/session/13521-10219-202/element/0/elements', + postdata: { + using: 'css selector', + value: 'input[name=q]' + }, + method: 'POST', + response: JSON.stringify({ + value: [{'element-6066-11e4-a52e-4f735466cecf': '9'}] + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/9/clear', + method: 'POST', + postdata: {}, + response: JSON.stringify({ + value: null + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/9/value', + method: 'POST', + postdata: { + text: 'nightwatch', + value: [ + 'n', 'i', 'g', 'h', 't', 'w', 'a', 't', 'c', 'h' + ] + }, + response: JSON.stringify({ + value: null + }) + }, true); + + const resultPromise = this.client.api.element('#signupSection').find('input[name=q]').setValue('night', 'watch'); + // neither an instance of Element or Promise, but an instance of ScopedWebElement. + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + assert.strictEqual(resultPromise instanceof Promise, false); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, true); + assert.strictEqual(await result.getId(), '9'); + }); + + it('test .element.find().setValue()', async function() { + MockServer + .addMock({ + url: '/session/13521-10219-202/element/0/elements', + postdata: { + using: 'css selector', + value: 'input[name=q]' + }, + method: 'POST', + response: JSON.stringify({ + value: [{'element-6066-11e4-a52e-4f735466cecf': '9'}] + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/9/clear', + method: 'POST', + postdata: {}, + response: JSON.stringify({ + value: null + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/9/value', + method: 'POST', + postdata: { + text: 'nightwatch', + value: [ + 'n', 'i', 'g', 'h', 't', 'w', 'a', 't', 'c', 'h' + ] + }, + response: JSON.stringify({ + value: null + }) + }, true); + + const resultPromise = this.client.api.element.find('#signupSection').find('input[name=q]').setValue(['night', 'watch']); + // neither an instance of Element or Promise, but an instance of ScopedWebElement. + assert.strictEqual(resultPromise instanceof Element, false); + assert.strictEqual(typeof resultPromise.find, 'undefined'); + assert.strictEqual(resultPromise instanceof Promise, false); + + const result = await resultPromise; + assert.strictEqual(result instanceof WebElement, true); + assert.strictEqual(await result.getId(), '9'); + }); +}); diff --git a/test/src/api/commands/web-element/testUpdate.js b/test/src/api/commands/web-element/testUpdate.js index e31a23d706..441084d772 100644 --- a/test/src/api/commands/web-element/testUpdate.js +++ b/test/src/api/commands/web-element/testUpdate.js @@ -94,7 +94,7 @@ describe('element().update() command', function () { }) }, true); - const resultPromise = this.client.api.element('#signupSection').find('input[name=q]').update('nightwatch'); + const resultPromise = this.client.api.element('#signupSection').find('input[name=q]').update('night', 'watch'); // neither an instance of Element or Promise, but an instance of ScopedWebElement. assert.strictEqual(resultPromise instanceof Element, false); assert.strictEqual(typeof resultPromise.find, 'undefined'); @@ -140,7 +140,7 @@ describe('element().update() command', function () { }) }, true); - const resultPromise = this.client.api.element.find('#signupSection').find('input[name=q]').update('nightwatch'); + const resultPromise = this.client.api.element.find('#signupSection').find('input[name=q]').update(['night', 'watch']); // neither an instance of Element or Promise, but an instance of ScopedWebElement. assert.strictEqual(resultPromise instanceof Element, false); assert.strictEqual(typeof resultPromise.find, 'undefined'); diff --git a/test/src/api/protocol/testAlerts.js b/test/src/api/protocol/testAlerts.js index 54d2d15b5b..b3662fb529 100644 --- a/test/src/api/protocol/testAlerts.js +++ b/test/src/api/protocol/testAlerts.js @@ -120,7 +120,7 @@ describe('alert commands', function () { assertion: function (value) { assert.strictEqual(value, text); }, - commandName: 'setAlertText', + commandName: 'alerts.setText', args: [text] }).then((result) => { assert.strictEqual(result.value, null); @@ -131,4 +131,25 @@ describe('alert commands', function () { done(err); }); }); + + it('test alerts.setText() with error', function (done) { + const text = 2; + + Globals.protocolTest({ + assertion: function (value) { + assert.strictEqual(value, text); + }, + commandName: 'alerts.setText', + args: [text] + }).catch(err => { + assert.strictEqual( + err.message, + 'Error while running "alerts.setText" command: First argument passed to .alerts.setText() must be a string.' + ); + }).catch(err => { + return err; + }).then(err => { + done(err); + }); + }); }); diff --git a/test/src/apidemos/web-elements/testElementApiWithPageObjects.js b/test/src/apidemos/web-elements/testElementApiWithPageObjects.js new file mode 100644 index 0000000000..6a9d7ef78a --- /dev/null +++ b/test/src/apidemos/web-elements/testElementApiWithPageObjects.js @@ -0,0 +1,109 @@ +const path = require('path'); +const MockServer = require('../../../lib/mockserver.js'); +const common = require('../../../common.js'); +const {settings} = common; +const NightwatchClient = common.require('index.js'); + +describe('new element api with page objects', function() { + beforeEach(function(done) { + this.server = MockServer.init(); + this.server.on('listening', () => { + done(); + }); + }); + + afterEach(function(done) { + this.server.close(function() { + done(); + }); + }); + + it('test custom command', function() { + const testsPath = path.join(__dirname, '../../../apidemos/web-elements/elementApiWithPageObjects.js'); + + MockServer + .addMock({ + url: '/session/13521-10219-202/elements', + postdata: { + using: 'xpath', + value: './/*[text()="Web Login"]' + }, + method: 'POST', + response: JSON.stringify({ + value: [ + {'element-6066-11e4-a52e-4f735466cecf': '5cc459b8-36a8-3042-8b4a-258883ea642b'}, + {'element-6066-11e4-a52e-4f735466cecf': '3783b042-7001-0740-a2c0-afdaac732e9f'} + ] + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/0/elements', + postdata: { + using: 'xpath', + value: './/*[text()="Help"]' + }, + method: 'POST', + response: JSON.stringify({ + value: [{'element-6066-11e4-a52e-4f735466cecf': '2'}] + }) + }, true) + .addMock({ + url: '/session/13521-10219-202/element/0/elements', + postdata: { + using: 'css selector', + value: '#getStarted' + }, + method: 'POST', + response: JSON.stringify({ + value: [ + {'element-6066-11e4-a52e-4f735466cecf': '2'}, + {'element-6066-11e4-a52e-4f735466cecf': '3'} + ] + }) + }, true, true) + .addMock({ + url: '/session/13521-10219-202/element/2/elements', + postdata: { + using: 'css selector', + value: '#getStartedStart' + }, + method: 'POST', + response: JSON.stringify({ + value: [ + {'element-6066-11e4-a52e-4f735466cecf': '4'}, + {'element-6066-11e4-a52e-4f735466cecf': '5'}, + {'element-6066-11e4-a52e-4f735466cecf': '6'} + ] + }) + }, true, true); + + const globals = { + calls: 0, + waitForConditionPollInterval: 50, + waitForConditionTimeout: 120, + retryAssertionTimeout: 100, + + reporter(results) { + if (results.lastError) { + throw results.lastError; + } + } + }; + + return NightwatchClient.runTests(testsPath, settings({ + selenium: { + port: null, + start_process: false + }, + selenium_host: null, + webdriver: { + port: 10195, + start_process: false + }, + output: false, + skip_testcases_on_fail: false, + page_objects_path: [path.join(__dirname, '../../../extra/pageobjects/pages')], + globals + })); + }); +}); diff --git a/test/src/apidemos/web-elements/testWaitUntil.js b/test/src/apidemos/web-elements/testWaitUntil.js new file mode 100644 index 0000000000..f833d6b599 --- /dev/null +++ b/test/src/apidemos/web-elements/testWaitUntil.js @@ -0,0 +1,86 @@ +const path = require('path'); +const assert = require('assert'); + +const commandMocks = require('../../../lib/command-mocks'); +const common = require('../../../common.js'); +const {settings} = common; +const NightwatchClient = common.require('index.js'); + +describe('waitUntil element command', function() { + beforeEach(function(done) { + commandMocks.start(done); + }); + + afterEach(function(done) { + commandMocks.stop(done); + }); + + it('test waitUntil element command - passed', function() { + const testsPath = path.join(__dirname, '../../../apidemos/web-elements/waitUntilTest.js'); + commandMocks.w3cSelected(); + commandMocks.w3cVisible(); + commandMocks.w3cEnabled(); + + + const globals = { + waitForConditionPollInterval: 50, + waitForConditionTimeout: 120, + retryAssertionTimeout: 100, + + reporter(results) { + if (results.lastError) { + throw results.lastError; + } + } + }; + + return NightwatchClient.runTests(testsPath, settings({ + selenium: { + port: null, + start_process: false + }, + selenium_host: null, + webdriver: { + port: 10195, + start_process: false + }, + output: false, + skip_testcases_on_fail: false, + globals + })); + }); + + it('test waitUntil element command - failed', function() { + const testsPath = path.join(__dirname, '../../../apidemos/web-elements/waitUntilFailureTest.js'); + commandMocks.w3cSelected(); + commandMocks.w3cVisible(); + + + const globals = { + waitForConditionPollInterval: 50, + waitForConditionTimeout: 120, + retryAssertionTimeout: 100, + + reporter(results) { + if (!results.lastError) { + assert.fail('Should result into failure'); + } + } + }; + + return NightwatchClient.runTests(testsPath, settings({ + selenium: { + port: null, + start_process: false + }, + selenium_host: null, + webdriver: { + port: 10195, + start_process: false + }, + output: false, + skip_testcases_on_fail: false, + globals + })); + }); +}); diff --git a/test/src/cli/testCliRunner.js b/test/src/cli/testCliRunner.js index 72b3ce4116..eb3ae27498 100644 --- a/test/src/cli/testCliRunner.js +++ b/test/src/cli/testCliRunner.js @@ -1158,8 +1158,8 @@ describe('Test CLI Runner', function() { }, 'android.chrome': { - real_mobile: false, desiredCapabilities: { + real_mobile: false, avd: 'nightwatch-android-11', browserName: 'chrome', 'goog:chromeOptions': { @@ -1178,7 +1178,7 @@ describe('Test CLI Runner', function() { }).setup(); assert.strictEqual(runner.argv.env, 'android.chrome'); - assert.strictEqual(runner.test_settings.real_mobile, false); + assert.strictEqual(runner.test_settings.desiredCapabilities.real_mobile, false); assert.strictEqual(runner.test_settings.desiredCapabilities.avd, 'nightwatch-android-11'); assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'chrome'); assert.ok('goog:chromeOptions' in runner.test_settings.desiredCapabilities); @@ -1194,8 +1194,8 @@ describe('Test CLI Runner', function() { }, 'android.firefox': { - real_mobile: false, desiredCapabilities: { + real_mobile: false, avd: 'nightwatch-android-11', browserName: 'firefox', 'moz:firefoxOptions': { @@ -1214,7 +1214,8 @@ describe('Test CLI Runner', function() { }).setup(); assert.strictEqual(runner.argv.env, 'android.firefox'); - assert.strictEqual(runner.test_settings.real_mobile, false); + assert.strictEqual(runner.test_settings.desiredCapabilities.real_mobile, false); + assert.strictEqual(runner.test_settings.desiredCapabilities.avd, 'nightwatch-android-11'); assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'firefox'); assert.ok('moz:firefoxOptions' in runner.test_settings.desiredCapabilities); assert.strictEqual(runner.test_settings.desiredCapabilities['moz:firefoxOptions'].androidPackage, 'org.mozilla.firefox'); @@ -1229,8 +1230,8 @@ describe('Test CLI Runner', function() { }, 'android.chrome': { - real_mobile: true, desiredCapabilities: { + real_mobile: true, avd: 'nightwatch-android-11', browserName: 'chrome', 'goog:chromeOptions': { @@ -1250,7 +1251,7 @@ describe('Test CLI Runner', function() { }).setup(); assert.strictEqual(runner.argv.env, 'android.chrome'); - assert.strictEqual(runner.test_settings.real_mobile, true); + assert.strictEqual(runner.test_settings.desiredCapabilities.real_mobile, true); assert.strictEqual(runner.test_settings.desiredCapabilities.avd, 'nightwatch-android-11'); assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'chrome'); assert.ok('goog:chromeOptions' in runner.test_settings.desiredCapabilities); @@ -1267,8 +1268,8 @@ describe('Test CLI Runner', function() { }, 'android.firefox': { - real_mobile: true, desiredCapabilities: { + real_mobile: true, avd: 'nightwatch-android-11', browserName: 'firefox', 'moz:firefoxOptions': { @@ -1288,7 +1289,84 @@ describe('Test CLI Runner', function() { }).setup(); assert.strictEqual(runner.argv.env, 'android.firefox'); - assert.strictEqual(runner.test_settings.real_mobile, true); + assert.strictEqual(runner.test_settings.desiredCapabilities.real_mobile, true); + assert.strictEqual(runner.test_settings.desiredCapabilities.avd, 'nightwatch-android-11'); + assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'firefox'); + assert.ok('moz:firefoxOptions' in runner.test_settings.desiredCapabilities); + assert.strictEqual(runner.test_settings.desiredCapabilities['moz:firefoxOptions'].androidPackage, 'org.mozilla.firefox'); + assert.strictEqual(runner.test_settings.desiredCapabilities['moz:firefoxOptions'].androidDeviceSerial, 'ZD2222W62Y'); + }); + + it('android config setup on real device - for chrome - deviceId passed in args', function() { + mockery.registerMock('./android_config.json', { + test_settings: { + 'default': { + output: false, + silent: false + }, + + 'android.chrome': { + desiredCapabilities: { + real_mobile: true, + avd: 'nightwatch-android-11', + browserName: 'chrome', + 'goog:chromeOptions': { + androidPackage: 'com.android.chrome' + } + } + } + } + }); + + const CliRunner = common.require('runner/cli/cli.js'); + + const runner = new CliRunner({ + config: './android_config.json', + env: 'android.chrome', + deviceId: 'ZD2222W62Y' + }).setup(); + + assert.strictEqual(runner.argv.env, 'android.chrome'); + assert.strictEqual(runner.test_settings.desiredCapabilities.real_mobile, true); + assert.strictEqual(runner.test_settings.desiredCapabilities.avd, 'nightwatch-android-11'); + assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'chrome'); + assert.ok('goog:chromeOptions' in runner.test_settings.desiredCapabilities); + assert.strictEqual(runner.test_settings.desiredCapabilities['goog:chromeOptions'].androidPackage, 'com.android.chrome'); + assert.strictEqual(runner.test_settings.desiredCapabilities['goog:chromeOptions'].androidDeviceSerial, 'ZD2222W62Y'); + }); + + it('android config setup on real device - for firefox - deviceId passed in args', function() { + mockery.registerMock('./android_config.json', { + test_settings: { + 'default': { + output: false, + silent: false + }, + + 'android.firefox': { + desiredCapabilities: { + real_mobile: true, + avd: 'nightwatch-android-11', + browserName: 'firefox', + 'moz:firefoxOptions': { + androidPackage: 'org.mozilla.firefox' + } + } + } + } + }); + + const CliRunner = common.require('runner/cli/cli.js'); + + const runner = new CliRunner({ + config: './android_config.json', + env: 'android.firefox', + deviceId: 'ZD2222W62Y' + }).setup(); + + assert.strictEqual(runner.argv.env, 'android.firefox'); + assert.strictEqual(runner.test_settings.desiredCapabilities.real_mobile, true); + assert.strictEqual(runner.test_settings.desiredCapabilities.avd, 'nightwatch-android-11'); assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'firefox'); assert.ok('moz:firefoxOptions' in runner.test_settings.desiredCapabilities); assert.strictEqual(runner.test_settings.desiredCapabilities['moz:firefoxOptions'].androidPackage, 'org.mozilla.firefox'); @@ -1349,4 +1427,64 @@ describe('Test CLI Runner', function() { }); + it('Nightwatch Inspector - By default Chrome in debug mode run serially', function() { + mockery.registerMock('./nightwatch_inspector.json', { + test_settings: { + 'default': { + output: false, + silent: false + }, + + chrome: { + desiredCapabilities: { + browserName: 'chrome' + } + } + } + }); + + const CliRunner = common.require('runner/cli/cli.js'); + + const runner = new CliRunner({ + config: './nightwatch_inspector.json', + env: 'chrome', + debug: true + }).setup(); + + assert.strictEqual(runner.argv.env, 'chrome'); + assert.strictEqual(runner.test_settings.parallel_mode, false); + assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'chrome'); + }); + + it('Nightwatch Inspector - parallel argument enables running Chrome in debug mode parallelly', function() { + mockery.registerMock('./nightwatch_inspector.json', { + test_settings: { + 'default': { + output: false, + silent: false + }, + + chrome: { + desiredCapabilities: { + browserName: 'chrome' + } + } + } + }); + + const CliRunner = common.require('runner/cli/cli.js'); + + const runner = new CliRunner({ + config: './nightwatch_inspector.json', + env: 'chrome', + debug: true, + parallel: true + }).setup(); + + assert.strictEqual(runner.argv.env, 'chrome'); + assert.strictEqual(runner.argv.serial, undefined); + assert.strictEqual(runner.argv.parallel, true); + assert.strictEqual(runner.test_settings.desiredCapabilities.browserName, 'chrome'); + }); + }); diff --git a/test/src/core/testPageObjectWaitForElementNotPresent.js b/test/src/core/testPageObjectWaitForElementNotPresent.js index f13aa82302..4e7628a392 100644 --- a/test/src/core/testPageObjectWaitForElementNotPresent.js +++ b/test/src/core/testPageObjectWaitForElementNotPresent.js @@ -18,16 +18,17 @@ xdescribe('test PageObject WaitForElementNotPresent', function () { Nocks.deleteSession().disable(); }); - it('WaitForElementNotPresent with section', function(done) { + it('WaitForElementNotPresent with section', async function() { Nocks.elementFound().click().elementFound().childElementsFound('#badElement').elementFound().childElementsNotFound() const page = this.client.api.page.waitForElementNotPresentPageObj(); + let res; page.waitForElementNotPresentDemo(function(result) { - assert.equal(result.status, 0); - done(); + res = result; }) - - this.client.start() + + await this.client.start(); + assert.equal(res.status, 0); }); }); diff --git a/test/src/index/transport/testMobileWebSupport.js b/test/src/index/transport/testMobileWebSupport.js new file mode 100644 index 0000000000..904fdf5a1a --- /dev/null +++ b/test/src/index/transport/testMobileWebSupport.js @@ -0,0 +1,241 @@ +const assert = require('assert'); +const common = require('../../../common.js'); +const path = require('path'); +const CommandGlobals = require('../../../lib/globals/commands.js'); +const MockServer = require('../../../lib/mockserver.js'); +const {settings} = common; +const {runTests} = common.require('index.js'); +const Transport = common.require('transport/selenium-webdriver/index.js'); +const {IosSessionNotCreatedError, AndroidConnectionError} = common.require('utils/mobile.js'); +const mockery = require('mockery'); + +describe('MobileSupport', function () { + before(function () { + mockery.enable({useCleanCache: true, warnOnReplace: false, warnOnUnregistered: false}); + }) + + beforeEach(function (done) { + this.getDriverBackup = Transport.prototype.getDriver; + this.createDriverServiceBackup = Transport.prototype.createDriverService; + process.removeAllListeners('exit'); + process.removeAllListeners('uncaughtException'); + process.removeAllListeners('unhandledRejection'); + + this.server = MockServer.init(); + + this.server.on('listening', () => { + done() + }); + }); + + afterEach(function (done) { + mockery.deregisterAll(); + mockery.resetCache(); + mockery.disable(); + Transport.prototype.getDriver = this.getDriverBackup; + Transport.prototype.createDriverService = this.createDriverServiceBackup; + + CommandGlobals.afterEach.call(this, function () { + done(); + }); + }); + + it('error classes for mobile-web support - RealIosDeviceIdError', function () { + let src_folders = [ + path.join(__dirname, '../../../sampletests/withsubfolders') + ]; + + return runTests({}, settings({ + output: false, + src_folders, + desiredCapabilities: { + browserName: 'safari', + platformName: 'iOS', + alwaysMatch: { + acceptInsecureCerts: false + } + }, + + webdriver: { + start_process: true, + server_path: '', + cli_args: [ + // --verbose + ] + } + })).catch(err => { + assert.ok(err instanceof Error); + assert.strictEqual(err.name, 'RealIosDeviceIdError'); + assert.strictEqual(err.message, 'Real Device ID is neither configured nor passed'); + assert.strictEqual(err.help.length, 4) + }) + }); + + it('error classes for mobile-web support - IosSessionNotCreatedError', function () { + Transport.prototype.getDriver = function() { + const err = new Error('An error occurred while creating a new SafariDriver session'); + err.name = 'SessionNotCreatedError'; + + throw err; + }; + + Transport.prototype.createDriverService = async function() { + this.driverService = { + getOutputFilePath(){}, + getSettingsFormatted(){} + }; + }; + + let src_folders = [ + path.join(__dirname, '../../../sampletests/withfailures'), + path.join(__dirname, '../../../sampletests/withsubfolders') + ]; + + let globals = { + calls: 0, + retryAssertionTimeout: 0, + reporter(results, cb) { + assert.ok(results.lastError instanceof Error); + assert.ok(results.lastError instanceof IosSessionNotCreatedError); + assert.ok(Object.prototype.hasOwnProperty.call(results.lastError, 'name')); + assert.ok(Object.prototype.hasOwnProperty.call(results.lastError, 'message')); + assert.ok(results.lastError.help.length, 3); + cb(); + } + }; + + return runTests({ + }, settings({ + output: false, + src_folders, + globals, + desiredCapabilities: { + browserName: 'safari', + platformName: 'iOS', + 'safari:deviceUDID': '00008030-00024C2C3453402E', + alwaysMatch: { + acceptInsecureCerts: false + } + }, + + webdriver: { + start_process: true, + server_path: '', + cli_args: [ + // --verbose + ] + } + })) + }); + + it('deviceId passed as argument - real device', async function () { + const CliRunner = common.require('runner/cli/cli.js'); + + const runner = new CliRunner({ + reporter: 'junit', + env: 'mixed', + deviceId: '00008030-00024C2C3453402E' + }); + + const globals = { + calls: 0, + retryAssertionTimeout: 0 + }; + + await runner.setupAsync(settings({ + output: false, + globals, + desiredCapabilities: { + browserName: 'safari', + platformName: 'iOS', + alwaysMatch: { + acceptInsecureCerts: false + } + }, + + webdriver: { + start_process: true, + server_path: '', + cli_args: [ + // --verbose + ] + } + })); + + assert.strictEqual(runner.test_settings.desiredCapabilities['safari:deviceUDID'], '00008030-00024C2C3453402E'); + assert.strictEqual(runner.test_settings.desiredCapabilities.platformName, 'iOS'); + assert.ok(!runner.test_settings.desiredCapabilities['safari:useSimulator']); + }); + + it('error classes for mobile-web support - AndroidConnectionError', function () { + this.timeout(10000); + mockery.enable({useCleanCache: true, warnOnReplace: false, warnOnUnregistered: false}); + + mockery.registerMock('../androidEmulator.js', class AndroidServer { + constructor() {} + + launchEmulator() { + return Promise.resolve(); + } + + killEmulator() {} + }); + + Transport.prototype.getDriver = function() { + const err = new Error('unknown error: There are no devices online'); + err.name = 'SessionNotCreatedError'; + + throw err; + }; + + Transport.prototype.createDriverService = async function() { + this.driverService = { + getOutputFilePath(){}, + getSettingsFormatted(){} + }; + }; + + mockery.registerMock('./', Transport); + mockery.registerMock('@nightwatch/mobile-helper', { + getBinaryLocation(){}, getPlatformName(){} + }); + + let src_folders = [ + path.join(__dirname, '../../../sampletests/withsubfolders/simple') + ]; + + let globals = { + calls: 0, + retryAssertionTimeout: 0, + reporter(results, cb) { + assert.ok(results.lastError instanceof Error); + assert.ok(results.lastError instanceof AndroidConnectionError); + assert.ok(results.lastError.message.includes('no devices online')); + assert.ok(Object.prototype.hasOwnProperty.call(results.lastError, 'message')); + assert.ok(results.lastError.help.length, 4); + cb(); + } + }; + + return runTests({}, settings({ + output: false, + src_folders, + globals, + desiredCapabilities: { + real_mobile: false, + browserName: 'chrome', + avd: 'dummy', + 'goog:chromeOptions': { + androidPackage: 'com.android.chrome' + } + }, + webdriver: { + start_process: true, + server_path: '', + cli_args: [ + // --verbose + ] + } + })) + }); +}); diff --git a/test/src/runner/cli/testCliRunnerParallel.js b/test/src/runner/cli/testCliRunnerParallel.js index 91d1ed0eee..e767cbc50d 100644 --- a/test/src/runner/cli/testCliRunnerParallel.js +++ b/test/src/runner/cli/testCliRunnerParallel.js @@ -19,11 +19,11 @@ describe('Test CLI Runner in Parallel', function () { }); } - before(function() { + beforeEach(function() { mockery.enable({useCleanCache: true, warnOnReplace: false, warnOnUnregistered: false}); }); - after(function() { + afterEach(function() { mockery.deregisterAll(); mockery.resetCache(); mockery.disable(); @@ -66,6 +66,7 @@ describe('Test CLI Runner in Parallel', function () { }); it('test run geckodriver with concurrency - worker threads', function () { + process.env.TEST_ENV = 'TEST'; class RunnerBaseMock extends RunnerBase { static readTestSource(settings, argv) { assert.strictEqual(settings.testWorkersEnabled, true); @@ -80,6 +81,11 @@ describe('Test CLI Runner in Parallel', function () { class WorkerProcessMock extends WorkerProcess { addTask({colors}) { assert.strictEqual(colors.length, 4); + assert.strictEqual(this.piscina.options.env.TEST_ENV, 'TEST'); + assert(Object.keys(this.piscina.options.env).length > 1, 'process.env should have more than one key'); + + // cleaning the env + process.env.TEST_ENV = undefined; return Promise.resolve(0); } diff --git a/test/src/runner/testReporter.js b/test/src/runner/testReporter.js index b0c3a8740d..b75ba5d45f 100644 --- a/test/src/runner/testReporter.js +++ b/test/src/runner/testReporter.js @@ -1,12 +1,12 @@ const assert = require('assert'); const path = require('path'); const mockery = require('mockery'); -const mkpath = require('mkpath'); const rimraf = require('rimraf'); const common = require('../../common.js'); const {settings} = common; const {runTests} = common.require('index.js'); +const {mkpath} = common.require('utils'); const {readFilePromise, readDirPromise} = require('../../lib/utils.js'); const MockServer = require('../../lib/mockserver.js'); @@ -252,6 +252,9 @@ describe('testReporter', function() { assert.ok(Object.keys(module).includes('startTimestamp')); assert.ok(Object.keys(module).includes('endTimestamp')); assert.ok(Object.keys(module).includes('host')); + assert.ok(Object.keys(module).includes('name')); + assert.ok(Object.keys(module).includes('tags')); + // check for individual test properties const test = module.completed['demoTest']; assert.ok(Object.keys(test).includes('status')); @@ -292,12 +295,17 @@ describe('testReporter', function() { const completedSections = module['completedSections']; - // check for module properties - assert.ok(Object.keys(completedSections).includes('__after_hook')); - assert.ok(Object.keys(completedSections).includes('__before_hook')); - assert.ok(Object.keys(completedSections).includes('__global_afterEach_hook')); - assert.ok(Object.keys(completedSections).includes('__global_beforeEach_hook')); - assert.ok(Object.keys(completedSections).includes('demoTest')); + // check module properties all for hooks + const hooks = ['__after_hook', '__before_hook', '__global_afterEach_hook', '__global_beforeEach_hook', 'demoTest']; + + hooks.forEach(hook => { + assert.ok(Object.keys(completedSections).includes(hook)); + + const sectionData = completedSections[hook]; + assert.ok(Object.keys(sectionData).includes('startTimestamp')); + assert.ok(Object.keys(sectionData).includes('endTimestamp')); + assert.ok(Object.keys(sectionData).includes('httpOutput')); + }); assert.strictEqual(completedSections['__after_hook']['commands'].length, 1); assert.strictEqual(completedSections['__after_hook']['commands'][0].name, 'end'); @@ -394,4 +402,30 @@ describe('testReporter', function() { assert.deepStrictEqual(result, ['nightwatch_reporter_output', 'html_reporter_output']); }); }); + + it('test to check retry data logging', function() { + this.timeout(100000); + + const testsPath = path.join(__dirname, '../../sampletests/withfailures'); + const globals = { + calls: 0, + reporter(results, cb) { + assert.ok('sample' in results.modules); + assert.ok('completedSections' in results.modules['sample']); + assert.ok('demoTest' in results.modules['sample']['completedSections']); + assert.ok('retryTestData' in results.modules['sample']['completedSections']['demoTest']); + assert.ok(results.modules['sample']['completedSections']['demoTest']['retryTestData'].length <= 3); + cb(); + }, + retryAssertionTimeout: 0 + }; + + return runTests({ + retries: 3, + _source: [testsPath] + }, settings({ + skip_testcases_on_fail: false, + globals + })); + }); }); diff --git a/test/src/runner/testRunWithVerify.js b/test/src/runner/testRunWithVerify.js index e65d52756e..a21872dabc 100644 --- a/test/src/runner/testRunWithVerify.js +++ b/test/src/runner/testRunWithVerify.js @@ -37,9 +37,10 @@ describe('testRunWithVerify', function() { retryAssertionTimeout: 50, reporter(results, cb) { assert.ok('verifySampleFailures' in results.modules); - assert.strictEqual(results.passed, 1); + assert.strictEqual(results.passed, 2); assert.strictEqual(results.failed, 2); - assert.strictEqual(results.assertions, 3); + assert.strictEqual(results.assertions, 4); + assert.strictEqual(results.skipped, 0); cb(); } diff --git a/test/src/runner/testRunnerHtmlOutput.js b/test/src/runner/testRunnerHtmlOutput.js index ae39834379..04324aca00 100644 --- a/test/src/runner/testRunnerHtmlOutput.js +++ b/test/src/runner/testRunnerHtmlOutput.js @@ -4,10 +4,10 @@ const MockServer = require('../../lib/mockserver.js'); const {settings} = common; const {runTests} = common.require('index.js'); const {readFilePromise} = require('../../lib/utils.js'); -const mkpath = require('mkpath'); const rimraf = require('rimraf'); const assert = require('assert'); const HtmlReporter = common.require('reporter/reporters/html.js'); +const {mkpath} = common.require('utils'); const reportObject = require('../../extra/reportObject'); describe('testRunnerHTMLOutput', function() { @@ -50,40 +50,41 @@ describe('testRunnerHTMLOutput', function() { assert.strictEqual(Object.keys(environments).length, 2); assert.ok(metadata.date); - assert.strictEqual(stats.total, 6); + assert.strictEqual(stats.total, 22); assert.strictEqual(stats.failed, 3); - assert.strictEqual(stats.passed, 3); + assert.strictEqual(stats.skipped, 2); + assert.strictEqual(stats.passed, 17); const chromeEnv = environments['chrome']; const firefoxEnv = environments['firefox']; assert.ok(chromeEnv); - assert.strictEqual(chromeEnv.stats.passed, 2); - assert.strictEqual(chromeEnv.stats.failed, 2); + assert.strictEqual(chromeEnv.stats.passed, 10); + assert.strictEqual(chromeEnv.stats.failed, 1); assert.strictEqual(chromeEnv.stats.skipped, 0); - assert.strictEqual(chromeEnv.stats.time, 27476); + assert.strictEqual(chromeEnv.stats.time, 79681); assert.strictEqual(chromeEnv.metadata.platformName, 'mac os x'); assert.strictEqual(chromeEnv.metadata.browserName, 'chrome'); - assert.strictEqual(chromeEnv.metadata.browserVersion, '108.0.5359.124'); + assert.strictEqual(chromeEnv.metadata.browserVersion, '111.0.5563.146'); assert.strictEqual(chromeEnv.metadata.device, 'desktop'); assert.strictEqual(chromeEnv.metadata.executionMode, 'local'); assert.ok(firefoxEnv); - assert.strictEqual(firefoxEnv.stats.passed, 1); - assert.strictEqual(firefoxEnv.stats.failed, 1); - assert.strictEqual(firefoxEnv.stats.skipped, 0); - assert.strictEqual(firefoxEnv.stats.time, 21175); + assert.strictEqual(firefoxEnv.stats.passed, 7); + assert.strictEqual(firefoxEnv.stats.failed, 2); + assert.strictEqual(firefoxEnv.stats.skipped, 2); + assert.strictEqual(firefoxEnv.stats.time, 70498); assert.strictEqual(firefoxEnv.metadata.platformName, 'mac'); assert.strictEqual(firefoxEnv.metadata.browserName, 'firefox'); - assert.strictEqual(firefoxEnv.metadata.browserVersion, '108.0.1'); + assert.strictEqual(firefoxEnv.metadata.browserVersion, '111.0.1'); assert.strictEqual(firefoxEnv.metadata.device, 'desktop'); assert.strictEqual(firefoxEnv.metadata.executionMode, 'local'); - assert.strictEqual(stats.time, chromeEnv.stats.time + firefoxEnv.stats.time); + assert.strictEqual(stats.time, 94000); - assert.strictEqual(Object.keys(chromeEnv.modules).length, 2); - assert.strictEqual(Object.keys(chromeEnv.modules['ecosia'].completedSections).length, 6); - assert.strictEqual(chromeEnv.modules['ecosia'].seleniumLog, '/Users/binayakghosh/projects/nightwatch-copy/logs/ecosia_chromedriver.log'); + assert.strictEqual(Object.keys(chromeEnv.modules).length, 10); + assert.strictEqual(Object.keys(chromeEnv.modules['ecosia'].completedSections).length, 5); + assert.strictEqual(chromeEnv.modules['ecosia'].seleniumLog, '/Users/vaibhavsingh/Dev/nightwatch/logs/ecosia_chromedriver.log'); const demoTestPass = chromeEnv.modules['ecosia'].completedSections['Demo test ecosia.org']; @@ -91,9 +92,9 @@ describe('testRunnerHTMLOutput', function() { assert.strictEqual(demoTestPass.commands.length, 7); assert.strictEqual(demoTestPass.status, 'pass'); - const demoTestFail = chromeEnv.modules['ecosia'].completedSections['Demo test ecosia.org fail']; + const demoTestFail = firefoxEnv.modules['chromeCDP_example'].completedSections['using CDP DOM Snapshot']; assert.ok(demoTestFail); - assert.strictEqual(demoTestFail.commands.length, 3); + assert.strictEqual(demoTestFail.commands.length, 4); assert.strictEqual(demoTestFail.status, 'fail'); }); diff --git a/test/src/runner/testRunnerJsonOutput.js b/test/src/runner/testRunnerJsonOutput.js index e8d4299ec7..1a001862c2 100644 --- a/test/src/runner/testRunnerJsonOutput.js +++ b/test/src/runner/testRunnerJsonOutput.js @@ -4,10 +4,10 @@ const assert = require('assert'); const common = require('../../common.js'); const MockServer = require('../../lib/mockserver.js'); const CommandGlobals = require('../../lib/globals/commands.js'); -const mkpath = require('mkpath'); const rimraf = require('rimraf'); const {settings} = common; const {runTests} = common.require('index.js'); +const {mkpath} = common.require('utils'); describe('testRunnerJsonOutput', function() { before(function(done) { diff --git a/test/src/runner/testRunnerJunitOutput.js b/test/src/runner/testRunnerJunitOutput.js index 05308a1ffe..647705aa47 100644 --- a/test/src/runner/testRunnerJunitOutput.js +++ b/test/src/runner/testRunnerJunitOutput.js @@ -7,7 +7,7 @@ const CommandGlobals = require('../../lib/globals/commands.js'); const {settings} = common; const {runTests} = common.require('index.js'); const {readFilePromise, readDirPromise} = require('../../lib/utils.js'); -const mkpath = require('mkpath'); +const {mkpath} = common.require('utils'); const rimraf = require('rimraf'); describe('testRunnerJUnitOutput', function() { diff --git a/test/src/runner/testRunnerSessionCreate.js b/test/src/runner/testRunnerSessionCreate.js index 1096dd43cf..735874fed0 100644 --- a/test/src/runner/testRunnerSessionCreate.js +++ b/test/src/runner/testRunnerSessionCreate.js @@ -6,8 +6,8 @@ const CommandGlobals = require('../../lib/globals/commands.js'); const {settings} = common; const {runTests} = common.require('index.js'); -describe('testRunnerSessionCreate', function() { - before(function(done) { +describe('testRunnerSessionCreate', function () { + before(function (done) { this.server = MockServer.init(); this.server.on('listening', () => { @@ -15,17 +15,17 @@ describe('testRunnerSessionCreate', function() { }); }); - after(function(done) { + after(function (done) { CommandGlobals.afterEach.call(this, done); }); - beforeEach(function() { + beforeEach(function () { process.removeAllListeners('exit'); process.removeAllListeners('uncaughtException'); process.removeAllListeners('unhandledRejection'); }); - it('testRunner with session create error using webdriver', function() { + it('testRunner with session create error using webdriver', function () { const testsPath = [ path.join(__dirname, '../../sampletests/simple'), path.join(__dirname, '../../sampletests/async') @@ -49,7 +49,7 @@ describe('testRunnerSessionCreate', function() { url: '/session', statusCode: 500, postdata: JSON.stringify({ - capabilities: {firstMatch: [{}], alwaysMatch: {browserName: 'firefox', 'nightwatch:options': {name: 'test-Name'}}} + capabilities: {firstMatch: [{}], alwaysMatch: {browserName: 'firefox', 'nightwatch:options': {name: 'test-Name'}}} }), response: JSON.stringify({ value: { @@ -88,7 +88,7 @@ describe('testRunnerSessionCreate', function() { })); }); - it('testRunner with session create error using webdriver with --fail-fast argv', function() { + it('testRunner with session create error using webdriver with --fail-fast argv', function () { const testsPath = [ path.join(__dirname, '../../sampletests/simple'), path.join(__dirname, '../../sampletests/async') @@ -154,7 +154,7 @@ describe('testRunnerSessionCreate', function() { }); - it('testRunner with session create error using webdriver with enable_fail_fast setting', function() { + it('testRunner with session create error using webdriver with enable_fail_fast setting', function () { const testsPath = [ path.join(__dirname, '../../sampletests/simple'), path.join(__dirname, '../../sampletests/async') @@ -220,7 +220,7 @@ describe('testRunnerSessionCreate', function() { }); - it('testRunner with session ECONNREFUSED error using webdriver', function() { + it('testRunner with session ECONNREFUSED error using webdriver', function () { const testsPath = [ path.join(__dirname, '../../sampletests/simple'), path.join(__dirname, '../../sampletests/async') @@ -259,7 +259,7 @@ describe('testRunnerSessionCreate', function() { }); }); - it('testRunner with not found server_path error', function() { + it('testRunner with not found server_path error', function () { const testsPath = [ path.join(__dirname, '../../sampletests/simple') ]; @@ -273,8 +273,8 @@ describe('testRunnerSessionCreate', function() { assert.strictEqual(results.lastError.sessionCreate, true); assert.strictEqual(results.lastError.showTrace, false); assert.ok(results.lastError instanceof Error); - assert.ok(results.lastError.detailedErr.includes('verify if webdriver is configured correctly; using:')); - assert.strictEqual(results.lastError.message, 'Unable to create the GeckoDriver process: The specified executable path does not exist: /bin/xxxxx'); + assert.ok(results.lastError.detailedErr.includes(' Verify if GeckoDriver is configured correctly; using:')); + assert.strictEqual(results.lastError.message, 'An error occurred while creating a new GeckoDriver session: [Error] spawn /bin/xxxxx ENOENT'); } }; @@ -298,7 +298,7 @@ describe('testRunnerSessionCreate', function() { }); }); - it('testRunner with incorrect server_path error', function() { + it('testRunner with incorrect server_path error', function () { const testsPath = [ path.join(__dirname, '../../sampletests/simple') ]; @@ -337,7 +337,7 @@ describe('testRunnerSessionCreate', function() { }); }); - it('test runner with reusing browser sessions', function() { + it('test runner with reusing browser sessions', function () { const testsPath = [ path.join(__dirname, '../../sampletests/reusebrowser')]; @@ -364,7 +364,7 @@ describe('testRunnerSessionCreate', function() { }, true); - + const globals = { reporter(results) { @@ -387,10 +387,10 @@ describe('testRunnerSessionCreate', function() { globals, output: false, output_folder: false - })); + })); }); - it('test runner with reusing browser sessions - using globals', function() { + it('test runner with reusing browser sessions - using globals', function () { const testsPath = [ path.join(__dirname, '../../sampletests/reusebrowser')]; @@ -417,7 +417,7 @@ describe('testRunnerSessionCreate', function() { }, true); - + const globals = { reuseBrowserSession: true, @@ -440,6 +440,6 @@ describe('testRunnerSessionCreate', function() { globals, output: false, output_folder: false - })); + })); }); }); diff --git a/test/src/service-builders/testChromeDriver.js b/test/src/service-builders/testChromeDriver.js index 036617f044..7d7780779c 100644 --- a/test/src/service-builders/testChromeDriver.js +++ b/test/src/service-builders/testChromeDriver.js @@ -148,7 +148,7 @@ describe('ChromeDriver Transport Tests', function () { assert.strictEqual(this.serviceName, 'ChromeDriver'); assert.strictEqual(this.outputFile, '_chromedriver.log'); - assert.strictEqual(this.requiresDriverBinary, true); + assert.strictEqual(this.requiresDriverBinary, false); assert.strictEqual(this.defaultPort, undefined); assert.strictEqual(this.npmPackageName, 'chromedriver'); assert.strictEqual(this.serviceDownloadUrl, 'https://sites.google.com/chromium.org/driver/downloads'); @@ -207,32 +207,6 @@ describe('ChromeDriver Transport Tests', function () { }; } - it('test create session with chrome driver -- not found error', async function() { - let error; - try { - const mockery = require('mockery'); - mockery.enable({useCleanCache: true, warnOnReplace: false, warnOnUnregistered: false}); - mockery.registerMock('chromedriver', null); - - await ChromeDriverTestSetup({ - desiredCapabilities: { - browserName: 'chrome' - }, - webdriver: { - port: 9999, - start_process: true - } - }); - mockery.disable(); - } catch (err) { - error = err; - } - - assert.ok(error instanceof Error); - assert.strictEqual(error.message, 'ChromeDriver cannot be found in the current project.'); - }); - - it('test create session with chrome driver', async function() { mockery.registerMock('chromedriver', { path: '/path/to/chromedriver' diff --git a/test/src/service-builders/testEdgeDriver.js b/test/src/service-builders/testEdgeDriver.js index 35add7151c..a401d00c74 100644 --- a/test/src/service-builders/testEdgeDriver.js +++ b/test/src/service-builders/testEdgeDriver.js @@ -215,27 +215,6 @@ describe('EdgeDriver Transport Tests', function () { } } - it('test create session with edge driver -- not found error', async function() { - let error; - try { - await EdgeDriverTestSetup({ - desiredCapabilities: { - browserName: 'MicrosoftEdge' - }, - webdriver: { - port: 9999, - start_process: true - } - }); - } catch (err) { - error = err; - } - - assert.ok(error instanceof Error); - assert.strictEqual(error.message, 'EdgeDriver cannot be found in the current project.'); - }); - - it('test create session with edge driver', async function() { const {session, serverPath, serverPort} = await EdgeDriverTestSetup({ desiredCapabilities: { diff --git a/test/src/service-builders/testFirefoxDriver.js b/test/src/service-builders/testFirefoxDriver.js index 73223054dd..d713521350 100644 --- a/test/src/service-builders/testFirefoxDriver.js +++ b/test/src/service-builders/testFirefoxDriver.js @@ -160,7 +160,7 @@ describe('GeckoDriver Transport Tests', function () { assert.strictEqual(this.serviceName, 'GeckoDriver'); assert.strictEqual(this.outputFile, '_geckodriver.log'); - assert.strictEqual(this.requiresDriverBinary, true); + assert.strictEqual(this.requiresDriverBinary, false); assert.strictEqual(this.defaultPort, undefined); assert.strictEqual(this.npmPackageName, 'geckodriver'); assert.strictEqual(this.serviceDownloadUrl, 'https://github.com/mozilla/geckodriver/releases'); @@ -224,30 +224,6 @@ describe('GeckoDriver Transport Tests', function () { }; } - it('test create session with firefox driver -- not found error', async function() { - let error; - mockery.registerMock('geckodriver', { - path: '' - }); - try { - await GeckoDriverTestSetup({ - desiredCapabilities: { - browserName: 'firefox' - }, - webdriver: { - port: 9999, - start_process: true - } - }); - } catch (err) { - error = err; - } - - assert.ok(error instanceof Error); - assert.strictEqual(error.message, 'GeckoDriver cannot be found in the current project.'); - }); - - it('test create session with firefox driver', async function() { mockery.registerMock('geckodriver', { path: '/path/to/geckodriver' diff --git a/test/src/utils/testUtils.js b/test/src/utils/testUtils.js index 9a39ad0854..1e96e7f23c 100644 --- a/test/src/utils/testUtils.js +++ b/test/src/utils/testUtils.js @@ -206,6 +206,28 @@ describe('test Utils', function() { console = oldConsole; }); + it('test getModuleKey', function() { + const srcFolderPath = path.join(__dirname, '../../sampletests/before-after'); + const {statSync, readdirSync} = require('fs'); + const getSrcTestsPaths = (testPath)=>{ + let fullPaths = []; + readdirSync(testPath).forEach(file=>{ + if (statSync(path.join(testPath, file)).isDirectory()){ + fullPaths = [...fullPaths, ...getSrcTestsPaths(path.join(testPath, file))]; + } else { + fullPaths.push(path.join(testPath, file)); + } + }); + + return fullPaths; + }; + const currentTestPath = path.join(srcFolderPath, 'sampleSingleTest.js'); + const testFiles = getSrcTestsPaths(srcFolderPath); + const fullPaths = testFiles.map(file=>({env: 'default', module: file})); + assert.equal(Utils.getModuleKey(currentTestPath, testFiles, fullPaths), 'sampleSingleTest.js'); + assert.equal(Utils.getModuleKey(currentTestPath, ['test/sampletests/simple', 'test/sampletests/before-after'], fullPaths), path.join('before-after', 'sampleSingleTest.js')); + }); + describe('test findTSConfigFile', function () { const {constants, rmdirSync} = require('fs');