gitextract_4_y53lij/ ├── .eslintignore ├── .eslintrc ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature-request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── label-commenter-config.yml │ ├── stale.yml │ └── workflows/ │ ├── build-node.yaml │ ├── component-tests.yaml │ ├── coverage.yml │ ├── label-commenter.yml │ ├── missing-types-comment.yml │ ├── missing-types.yml │ ├── nightly.yml │ ├── publish.yml │ └── type-declaration-tests.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── api/ │ ├── README.md │ └── index.js ├── bin/ │ ├── .gitignore │ ├── nightwatch │ ├── runner.js │ └── show_survey.js ├── codecov.yml ├── examples/ │ ├── .gitignore │ ├── cucumber-js/ │ │ ├── README.md │ │ └── features/ │ │ ├── nightwatch.feature │ │ └── step_definitions/ │ │ └── nightwatch.js │ ├── custom-assertions/ │ │ └── testCustomAssertion.js │ ├── custom-commands/ │ │ ├── angular/ │ │ │ └── getElementsInList.js │ │ └── strictClick.js │ ├── globals.json │ ├── globalsModule.js │ ├── pages/ │ │ ├── google/ │ │ │ ├── consent.js │ │ │ ├── search.js │ │ │ └── searchResults.js │ │ └── nightwatchFeatures.js │ ├── test-app/ │ │ ├── globals.js │ │ ├── index.html │ │ └── page2.html │ ├── tests/ │ │ ├── README.md │ │ ├── angularTodoTest.js │ │ ├── bstackdemo/ │ │ │ ├── auth.js │ │ │ └── checkout.js │ │ ├── chromeCDP_example.js │ │ ├── duckDuckGo.js │ │ ├── ecosia.js │ │ ├── element/ │ │ │ ├── dragAndDrop.js │ │ │ ├── elementScreenshot.js │ │ │ ├── elementapi-tests.js │ │ │ └── isCommands.js │ │ ├── google.js │ │ ├── googlePageObject.js │ │ ├── sample-with-relative-locators.js │ │ ├── selectElement.js │ │ ├── shadowRootExample.js │ │ └── vueTodoList.js │ ├── tsconfig.json │ └── unittests/ │ ├── demoTestAsync.js │ ├── testUtils.js │ └── testUtilsWithChai.js ├── index.js ├── lib/ │ ├── api/ │ │ ├── _loaders/ │ │ │ ├── _base-loader.js │ │ │ ├── _command-loader.js │ │ │ ├── assertion-scheduler.js │ │ │ ├── assertion.js │ │ │ ├── chrome.js │ │ │ ├── command.js │ │ │ ├── element-api.js │ │ │ ├── element-command.js │ │ │ ├── element-global.js │ │ │ ├── ensure.js │ │ │ ├── expect-assertion.js │ │ │ ├── expect.js │ │ │ ├── firefox.js │ │ │ ├── page-object.js │ │ │ ├── plugin.js │ │ │ ├── static.js │ │ │ └── within-context.js │ │ ├── assertions/ │ │ │ ├── _assertionInstance.js │ │ │ ├── attributeContains.js │ │ │ ├── attributeEquals.js │ │ │ ├── attributeMatches.js │ │ │ ├── contains.js │ │ │ ├── containsText.js │ │ │ ├── cssClassNotPresent.js │ │ │ ├── cssClassPresent.js │ │ │ ├── cssProperty.js │ │ │ ├── domPropertyContains.js │ │ │ ├── domPropertyEquals.js │ │ │ ├── domPropertyMatches.js │ │ │ ├── elementNotPresent.js │ │ │ ├── elementPresent.js │ │ │ ├── elementsCount.js │ │ │ ├── enabled.js │ │ │ ├── hasAttribute.js │ │ │ ├── hasClass.js │ │ │ ├── hasDescendants.js │ │ │ ├── hidden.js │ │ │ ├── promisedValue.js │ │ │ ├── selected.js │ │ │ ├── textContains.js │ │ │ ├── textEquals.js │ │ │ ├── textMatches.js │ │ │ ├── title.js │ │ │ ├── titleContains.js │ │ │ ├── titleEquals.js │ │ │ ├── titleMatches.js │ │ │ ├── urlContains.js │ │ │ ├── urlEquals.js │ │ │ ├── urlMatches.js │ │ │ ├── value.js │ │ │ ├── valueContains.js │ │ │ ├── valueEquals.js │ │ │ └── visible.js │ │ ├── client-commands/ │ │ │ ├── _base-command.js │ │ │ ├── _locateStrategy.js │ │ │ ├── alerts/ │ │ │ │ ├── accept.js │ │ │ │ ├── dismiss.js │ │ │ │ ├── getText.js │ │ │ │ └── setText.js │ │ │ ├── axeInject.js │ │ │ ├── axeRun.js │ │ │ ├── cookies/ │ │ │ │ ├── delete.js │ │ │ │ ├── deleteAll.js │ │ │ │ ├── get.js │ │ │ │ ├── getAll.js │ │ │ │ └── set.js │ │ │ ├── debug.js │ │ │ ├── deleteCookie.js │ │ │ ├── deleteCookies.js │ │ │ ├── document/ │ │ │ │ ├── executeAsyncScript.js │ │ │ │ ├── executeScript.js │ │ │ │ ├── injectScript.js │ │ │ │ └── source.js │ │ │ ├── enablePerformanceMetrics.js │ │ │ ├── end.js │ │ │ ├── getCookie.js │ │ │ ├── getCookies.js │ │ │ ├── getLog.js │ │ │ ├── getLogTypes.js │ │ │ ├── getPerformanceMetrics.js │ │ │ ├── getTitle.js │ │ │ ├── getWindowPosition.js │ │ │ ├── getWindowRect.js │ │ │ ├── getWindowSize.js │ │ │ ├── init.js │ │ │ ├── injectScript.js │ │ │ ├── isLogAvailable.js │ │ │ ├── logs/ │ │ │ │ ├── captureBrowserConsoleLogs.js │ │ │ │ ├── captureBrowserExceptions.js │ │ │ │ ├── getSessionLog.js │ │ │ │ ├── getSessionLogTypes.js │ │ │ │ └── isSessionLogAvailable.js │ │ │ ├── maximizeWindow.js │ │ │ ├── network/ │ │ │ │ ├── captureRequests.js │ │ │ │ ├── mockResponse.js │ │ │ │ └── setConditions.js │ │ │ ├── pageSource.js │ │ │ ├── pause.js │ │ │ ├── perform.js │ │ │ ├── registerBasicAuth.js │ │ │ ├── resizeWindow.js │ │ │ ├── saveScreenshot.js │ │ │ ├── saveSnapshot.js │ │ │ ├── setCookie.js │ │ │ ├── setDeviceDimensions.js │ │ │ ├── setGeolocation.js │ │ │ ├── setWindowPosition.js │ │ │ ├── setWindowRect.js │ │ │ ├── setWindowSize.js │ │ │ ├── takeHeapSnapshot.js │ │ │ ├── urlHash.js │ │ │ ├── useCss.js │ │ │ ├── useXpath.js │ │ │ ├── window/ │ │ │ │ ├── close.js │ │ │ │ ├── fullscreen.js │ │ │ │ ├── getAllHandles.js │ │ │ │ ├── getHandle.js │ │ │ │ ├── getPosition.js │ │ │ │ ├── getRect.js │ │ │ │ ├── getSize.js │ │ │ │ ├── maximize.js │ │ │ │ ├── minimize.js │ │ │ │ ├── open.js │ │ │ │ ├── setPosition.js │ │ │ │ ├── setRect.js │ │ │ │ ├── setSize.js │ │ │ │ └── switchTo.js │ │ │ └── within.js │ │ ├── element-commands/ │ │ │ ├── _baseElementCommand.js │ │ │ ├── _waitFor.js │ │ │ ├── _waitForDisplayed.js │ │ │ ├── check.js │ │ │ ├── clearValue.js │ │ │ ├── click.js │ │ │ ├── clickAndHold.js │ │ │ ├── doubleClick.js │ │ │ ├── dragAndDrop.js │ │ │ ├── findElement.js │ │ │ ├── findElements.js │ │ │ ├── getAccessibleName.js │ │ │ ├── getAriaRole.js │ │ │ ├── getAttribute.js │ │ │ ├── getCssProperty.js │ │ │ ├── getElementProperty.js │ │ │ ├── getElementRect.js │ │ │ ├── getElementSize.js │ │ │ ├── getFirstElementChild.js │ │ │ ├── getLastElementChild.js │ │ │ ├── getLocation.js │ │ │ ├── getLocationInView.js │ │ │ ├── getNextSibling.js │ │ │ ├── getPreviousSibling.js │ │ │ ├── getShadowRoot.js │ │ │ ├── getTagName.js │ │ │ ├── getText.js │ │ │ ├── getValue.js │ │ │ ├── hasDescendants.js │ │ │ ├── isEnabled.js │ │ │ ├── isPresent.js │ │ │ ├── isSelected.js │ │ │ ├── isVisible.js │ │ │ ├── moveToElement.js │ │ │ ├── rightClick.js │ │ │ ├── sendKeys.js │ │ │ ├── setAttribute.js │ │ │ ├── setPassword.js │ │ │ ├── setValue.js │ │ │ ├── submitForm.js │ │ │ ├── takeElementScreenshot.js │ │ │ ├── uncheck.js │ │ │ ├── updateValue.js │ │ │ ├── uploadFile.js │ │ │ ├── waitForElementNotPresent.js │ │ │ ├── waitForElementNotVisible.js │ │ │ ├── waitForElementPresent.js │ │ │ └── waitForElementVisible.js │ │ ├── expect/ │ │ │ ├── _baseExpect.js │ │ │ ├── assertions/ │ │ │ │ ├── _baseAssertion.js │ │ │ │ ├── element/ │ │ │ │ │ ├── _element-assertion.js │ │ │ │ │ ├── active.js │ │ │ │ │ ├── attribute.js │ │ │ │ │ ├── css.js │ │ │ │ │ ├── enabled.js │ │ │ │ │ ├── present.js │ │ │ │ │ ├── property.js │ │ │ │ │ ├── selected.js │ │ │ │ │ ├── text.js │ │ │ │ │ ├── type.js │ │ │ │ │ ├── value.js │ │ │ │ │ └── visible.js │ │ │ │ └── elements/ │ │ │ │ └── count.js │ │ │ ├── component.js │ │ │ ├── cookie.js │ │ │ ├── element.js │ │ │ ├── elements.js │ │ │ ├── title.js │ │ │ └── url.js │ │ ├── index.js │ │ ├── protocol/ │ │ │ ├── _base-action.js │ │ │ ├── acceptAlert.js │ │ │ ├── appium/ │ │ │ │ ├── getContext.js │ │ │ │ ├── getContexts.js │ │ │ │ ├── getCurrentActivity.js │ │ │ │ ├── getCurrentPackage.js │ │ │ │ ├── getGeolocation.js │ │ │ │ ├── getOrientation.js │ │ │ │ ├── hideKeyboard.js │ │ │ │ ├── isKeyboardShown.js │ │ │ │ ├── longPressKeyCode.js │ │ │ │ ├── pressKeyCode.js │ │ │ │ ├── resetApp.js │ │ │ │ ├── setContext.js │ │ │ │ ├── setGeolocation.js │ │ │ │ ├── setOrientation.js │ │ │ │ └── startActivity.js │ │ │ ├── back.js │ │ │ ├── closeWindow.js │ │ │ ├── contexts.js │ │ │ ├── cookie.js │ │ │ ├── currentContext.js │ │ │ ├── dismissAlert.js │ │ │ ├── element.js │ │ │ ├── elementActive.js │ │ │ ├── elementIdAttribute.js │ │ │ ├── elementIdClear.js │ │ │ ├── elementIdClick.js │ │ │ ├── elementIdCssProperty.js │ │ │ ├── elementIdDisplayed.js │ │ │ ├── elementIdDoubleClick.js │ │ │ ├── elementIdElement.js │ │ │ ├── elementIdElements.js │ │ │ ├── elementIdEnabled.js │ │ │ ├── elementIdEquals.js │ │ │ ├── elementIdLocation.js │ │ │ ├── elementIdLocationInView.js │ │ │ ├── elementIdName.js │ │ │ ├── elementIdProperty.js │ │ │ ├── elementIdSelected.js │ │ │ ├── elementIdSize.js │ │ │ ├── elementIdText.js │ │ │ ├── elementIdValue.js │ │ │ ├── elements.js │ │ │ ├── forward.js │ │ │ ├── frame.js │ │ │ ├── frameParent.js │ │ │ ├── fullscreenWindow.js │ │ │ ├── getAlertText.js │ │ │ ├── getCurrentUrl.js │ │ │ ├── getOrientation.js │ │ │ ├── keys.js │ │ │ ├── minimizeWindow.js │ │ │ ├── mouseButtonClick.js │ │ │ ├── mouseButtonDown.js │ │ │ ├── mouseButtonUp.js │ │ │ ├── moveTo.js │ │ │ ├── navigateTo.js │ │ │ ├── openNewWindow.js │ │ │ ├── quit.js │ │ │ ├── refresh.js │ │ │ ├── releaseMouseButton.js │ │ │ ├── screenshot.js │ │ │ ├── session.js │ │ │ ├── sessionLog.js │ │ │ ├── sessionLogTypes.js │ │ │ ├── sessions.js │ │ │ ├── setAlertText.js │ │ │ ├── setContext.js │ │ │ ├── setOrientation.js │ │ │ ├── source.js │ │ │ ├── status.js │ │ │ ├── submit.js │ │ │ ├── switchToWindow.js │ │ │ ├── timeouts.js │ │ │ ├── timeoutsAsyncScript.js │ │ │ ├── timeoutsImplicitWait.js │ │ │ ├── title.js │ │ │ ├── url.js │ │ │ ├── waitUntil.js │ │ │ ├── windowHandle.js │ │ │ ├── windowHandles.js │ │ │ ├── windowMaximize.js │ │ │ ├── windowPosition.js │ │ │ ├── windowRect.js │ │ │ └── windowSize.js │ │ └── web-element/ │ │ ├── assert/ │ │ │ ├── element-assertions.js │ │ │ ├── elements-assertions.js │ │ │ └── value-assertions.js │ │ ├── commands/ │ │ │ ├── check.js │ │ │ ├── clear.js │ │ │ ├── click.js │ │ │ ├── clickAndHold.js │ │ │ ├── doubleClick.js │ │ │ ├── dragAndDrop.js │ │ │ ├── find.js │ │ │ ├── findAll.js │ │ │ ├── findAllByAltText.js │ │ │ ├── findAllByPlaceholderText.js │ │ │ ├── findAllByRole.js │ │ │ ├── findAllByText.js │ │ │ ├── findByAltText.js │ │ │ ├── findByLabelText.js │ │ │ ├── findByPlaceholderText.js │ │ │ ├── findByRole.js │ │ │ ├── findByText.js │ │ │ ├── getAccessibleName.js │ │ │ ├── getAriaRole.js │ │ │ ├── getAttribute.js │ │ │ ├── getCssProperty.js │ │ │ ├── getFirstElementChild.js │ │ │ ├── getId.js │ │ │ ├── getLastElementChild.js │ │ │ ├── getNextElementSibling.js │ │ │ ├── getParentElement.js │ │ │ ├── getPreviousElementSibling.js │ │ │ ├── getProperty.js │ │ │ ├── getRect.js │ │ │ ├── getShadowRoot.js │ │ │ ├── getTagName.js │ │ │ ├── getText.js │ │ │ ├── getValue.js │ │ │ ├── inspectInDevTools.js │ │ │ ├── isActive.js │ │ │ ├── isEnabled.js │ │ │ ├── isPresent.js │ │ │ ├── isSelected.js │ │ │ ├── isVisible.js │ │ │ ├── moveTo.js │ │ │ ├── rightClick.js │ │ │ ├── sendKeys.js │ │ │ ├── setAttribute.js │ │ │ ├── setProperty.js │ │ │ ├── setValue.js │ │ │ ├── submit.js │ │ │ ├── takeScreenshot.js │ │ │ ├── uncheck.js │ │ │ ├── update.js │ │ │ └── upload.js │ │ ├── element-locator.js │ │ ├── element-value.js │ │ ├── factory.js │ │ ├── index.js │ │ ├── scoped-element.js │ │ ├── scoped-elements.js │ │ └── waitUntil.js │ ├── assertion/ │ │ ├── assertion-error.js │ │ ├── assertion-runner.js │ │ ├── assertion.js │ │ └── index.js │ ├── core/ │ │ ├── asynctree.js │ │ ├── client.js │ │ ├── namespaced-api.js │ │ ├── queue.js │ │ └── treenode.js │ ├── element/ │ │ ├── appium-locator.js │ │ ├── command.js │ │ ├── index.js │ │ ├── locate/ │ │ │ ├── elements-by-recursion.js │ │ │ ├── recursive-lookup.js │ │ │ └── single-element-by-recursion.js │ │ ├── locator-factory.js │ │ ├── locator.js │ │ └── strategy.js │ ├── http/ │ │ ├── auth.js │ │ ├── formatter.js │ │ ├── http.js │ │ ├── options.js │ │ ├── request.js │ │ └── response.js │ ├── index.js │ ├── page-object/ │ │ ├── base-object.js │ │ ├── command-wrapper.js │ │ ├── index.js │ │ └── section.js │ ├── reporter/ │ │ ├── axe-report.js │ │ ├── base-reporter.js │ │ ├── global-reporter.js │ │ ├── index.js │ │ ├── reporters/ │ │ │ ├── html.js │ │ │ ├── json.js │ │ │ ├── junit.js │ │ │ ├── junit.xml.ejs │ │ │ └── minimalJson.js │ │ ├── results.js │ │ ├── simplified.js │ │ └── summary.js │ ├── runner/ │ │ ├── androidEmulator.js │ │ ├── cli/ │ │ │ ├── argv-setup.js │ │ │ ├── cli.js │ │ │ └── nightwatch.conf.ejs │ │ ├── concurrency/ │ │ │ ├── child-process.js │ │ │ ├── index.js │ │ │ ├── task.js │ │ │ ├── worker-process.js │ │ │ └── worker-task.js │ │ ├── eventHub.js │ │ ├── folder-walk.js │ │ ├── matchers/ │ │ │ ├── filename.js │ │ │ └── tags.js │ │ ├── process-listener.js │ │ ├── rerunUtil.js │ │ ├── runner.js │ │ ├── test-runners/ │ │ │ ├── cucumber/ │ │ │ │ ├── README.md │ │ │ │ ├── _setup_cucumber_runner.js │ │ │ │ └── nightwatch-format.js │ │ │ ├── cucumber.js │ │ │ ├── default.js │ │ │ ├── mocha/ │ │ │ │ ├── custom-runnable.js │ │ │ │ ├── custom-runner.js │ │ │ │ ├── extensions.js │ │ │ │ └── nightwatchSuite.js │ │ │ └── mocha.js │ │ └── test-source.js │ ├── settings/ │ │ ├── defaults.js │ │ └── settings.js │ ├── testsuite/ │ │ ├── context.js │ │ ├── globals.js │ │ ├── hooks/ │ │ │ ├── _basehook.js │ │ │ ├── afterAll.js │ │ │ ├── afterChildProcess.js │ │ │ ├── afterEach.js │ │ │ ├── beforeAll.js │ │ │ ├── beforeChildProcess.js │ │ │ └── beforeEach.js │ │ ├── hooks.js │ │ ├── index.js │ │ ├── interfaces/ │ │ │ ├── common.js │ │ │ ├── describe.js │ │ │ └── exports.js │ │ ├── nightwatch-inspector/ │ │ │ ├── index.js │ │ │ └── websocket-server.js │ │ ├── repl.js │ │ ├── retries.js │ │ ├── runnable.js │ │ └── testcase.js │ ├── transport/ │ │ ├── errors/ │ │ │ └── index.js │ │ ├── factory.js │ │ ├── index.js │ │ └── selenium-webdriver/ │ │ ├── actions.js │ │ ├── appium.js │ │ ├── appiumBase.js │ │ ├── browserstack/ │ │ │ ├── appAutomate.js │ │ │ ├── automate.js │ │ │ ├── automateTurboScale.js │ │ │ └── browserstack.js │ │ ├── cdp.js │ │ ├── chrome.js │ │ ├── edge.js │ │ ├── firefox.js │ │ ├── httpclient.js │ │ ├── index.js │ │ ├── method-mappings.js │ │ ├── options.js │ │ ├── safari.js │ │ ├── selenium.js │ │ ├── service-builders/ │ │ │ ├── appium.js │ │ │ ├── base-service.js │ │ │ ├── chrome.js │ │ │ ├── edge.js │ │ │ ├── firefox.js │ │ │ ├── safari.js │ │ │ └── selenium.js │ │ └── session.js │ └── utils/ │ ├── addDetailedError.js │ ├── alwaysDisplayError.js │ ├── analytics.js │ ├── beautifyStackTrace.js │ ├── browsername.js │ ├── chalkColors.js │ ├── createPromise.js │ ├── debuggability.js │ ├── getAllClassMethodNames.js │ ├── getFreePort.js │ ├── index.js │ ├── isErrorObject.js │ ├── locatestrategy.js │ ├── logger/ │ │ ├── index.js │ │ └── log_settings.js │ ├── mobile.js │ ├── periodic-promise.js │ ├── printVersionInfo.js │ ├── requireModule.js │ ├── safeStringify.js │ ├── screenshots.js │ ├── seleniumAtoms.js │ ├── snapshots.js │ ├── stackTrace.js │ ├── timed-callback.js │ └── version.js ├── package.json ├── test/ │ ├── .eslintrc │ ├── apidemos/ │ │ ├── actions-api/ │ │ │ ├── actionsApi.js │ │ │ └── asyncActionsApi.js │ │ ├── angular-test/ │ │ │ ├── angularTodoListWithClassicApis.js │ │ │ ├── angularTodoListWithElementGlobal.js │ │ │ ├── angularTodoListWithElementGlobalAndError.js │ │ │ └── angularTodoListWithElementGlobalAsync.js │ │ ├── appium/ │ │ │ └── appiumTest.js │ │ ├── cdp/ │ │ │ ├── registerAuth.js │ │ │ └── registerAuth2.js │ │ ├── chrome/ │ │ │ └── chromeTest.js │ │ ├── cookies/ │ │ │ ├── cookieTests.js │ │ │ └── cookieTestsWithError.js │ │ ├── custom-commands/ │ │ │ ├── testNamespacedAliases.js │ │ │ ├── testUsingAsyncCustomAssert.js │ │ │ ├── testUsingAutoInvokeCommand.js │ │ │ ├── testUsingCommandReturnFn.js │ │ │ ├── testUsingCustomExecute.js │ │ │ ├── testUsingCustomGetEmail.js │ │ │ └── testUsingES6AsyncCustomCommands.js │ │ ├── custom-commands-parallel/ │ │ │ └── testUsingES6AsyncCustomCommands.js │ │ ├── elements/ │ │ │ ├── elementGlobalTest.js │ │ │ ├── findElementsCustomCommand.js │ │ │ ├── findElementsPageCommands.js │ │ │ └── testGlobalLocateStrategy.js │ │ ├── ensure/ │ │ │ ├── ensureTestError.js │ │ │ ├── ensureTestNotSelected.js │ │ │ └── ensureTestSelected.js │ │ ├── expect-global/ │ │ │ ├── deepEqual.js │ │ │ └── expect.js │ │ ├── firefox/ │ │ │ └── firefoxTest.js │ │ ├── namespaced-api/ │ │ │ └── namespacedApiTest.js │ │ ├── navigation/ │ │ │ └── navigateTest.js │ │ ├── page-objects/ │ │ │ └── commandsReturnTypeTest.js │ │ ├── relative-locators/ │ │ │ └── sample-with-relative-locators.js │ │ └── web-elements/ │ │ ├── assertionTest.js │ │ ├── elementApiWithPageObjects.js │ │ ├── waitUntilElementNotPresent.js │ │ ├── waitUntilFailureTest.js │ │ └── waitUntilTest.js │ ├── asynchookstests/ │ │ ├── afterEach-timeout/ │ │ │ └── sampleAsyncHooks.js │ │ ├── async-provide-error/ │ │ │ ├── after.js │ │ │ ├── afterAsync.js │ │ │ ├── afterEach.js │ │ │ ├── afterEachAsync.js │ │ │ ├── afterEachWithClient.js │ │ │ ├── afterWithClient.js │ │ │ ├── before.js │ │ │ ├── beforeAsync.js │ │ │ ├── beforeEach.js │ │ │ ├── beforeEachAsync.js │ │ │ ├── beforeEachAsyncWithClient.js │ │ │ ├── beforeEachAsyncWithClientMultiple.js │ │ │ ├── beforeEachWithClient.js │ │ │ └── beforeWithClient.js │ │ ├── before-timeout/ │ │ │ └── sampleAsyncHooks.js │ │ ├── sampleWithAssertionFailedInAfter.js │ │ ├── sampleWithAssertionFailedInBefore.js │ │ ├── sampleWithErrorInTestcaseAndAfter.js │ │ ├── sampleWithFailureInBeforeAndAfter.js │ │ ├── sampleWithFailureInTestcaseAndAfter.js │ │ ├── unittest-async-timeout.js │ │ ├── unittest-error.js │ │ └── unittest-failure/ │ │ └── unittest-failure.js │ ├── common.js │ ├── component-tests/ │ │ ├── samples/ │ │ │ ├── nightwatch.conf-noplugins.js │ │ │ ├── react/ │ │ │ │ ├── nightwatch.conf.js │ │ │ │ ├── src/ │ │ │ │ │ └── Form.jsx │ │ │ │ └── tests/ │ │ │ │ ├── Form.spec--_with-$hooks.jsx │ │ │ │ ├── formTest--notFound.js │ │ │ │ └── formTest.js │ │ │ └── vue/ │ │ │ ├── nightwatch.conf.js │ │ │ ├── src/ │ │ │ │ └── Form.vue │ │ │ └── tests/ │ │ │ ├── formTest--notFound.js │ │ │ └── formTest.js │ │ └── src/ │ │ ├── testRunBasicReact.js │ │ ├── testRunBasicVue.js │ │ └── testRunnJSXReact.js │ ├── cucumber-integration-tests/ │ │ ├── sample_cucumber_tests/ │ │ │ ├── chainingCommands/ │ │ │ │ └── testCommands.js │ │ │ ├── customCommands/ │ │ │ │ └── testCucumberWithCustomWait.js │ │ │ ├── integration/ │ │ │ │ ├── sample.feature │ │ │ │ ├── testSample.js │ │ │ │ └── testWithFailures.js │ │ │ ├── parallel/ │ │ │ │ ├── sample.feature │ │ │ │ ├── testSample.js │ │ │ │ └── testWithFailures.js │ │ │ ├── parallel-formatters/ │ │ │ │ ├── sample.feature │ │ │ │ ├── testSample.js │ │ │ │ └── testWithFailures.js │ │ │ ├── parallelWithMultipleDefinition/ │ │ │ │ ├── testExpect.js │ │ │ │ └── testSample.js │ │ │ ├── with-extra-setup/ │ │ │ │ ├── _extra_setup.js │ │ │ │ ├── sample.feature │ │ │ │ ├── testSample.js │ │ │ │ └── testWithFailures.js │ │ │ ├── with-modified-settings/ │ │ │ │ ├── plugin/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── nightwatch/ │ │ │ │ │ └── globals.js │ │ │ │ └── testSample.js │ │ │ ├── withexpect/ │ │ │ │ ├── sample.feature │ │ │ │ ├── testSample.js │ │ │ │ └── testWithFailures.js │ │ │ └── withwaitFor/ │ │ │ ├── sample.feature │ │ │ └── testWithFailures.js │ │ ├── testCucumberTestsInParallel.js │ │ ├── testCucumberTestsParallelFormatters.js │ │ ├── testCucumberTestsWithExpect.js │ │ ├── testCucumberTestsWithExtras.js │ │ ├── testCucumberTestsWithModifiedSettings.js │ │ └── testCucumberTestsWithWaitFor.js │ ├── extra/ │ │ ├── assertions/ │ │ │ ├── .dotrc │ │ │ ├── customAssertion.js │ │ │ └── customAssertionWithSelector.js │ │ ├── commands/ │ │ │ ├── _otherPerform.js │ │ │ ├── autoInvoke/ │ │ │ │ └── customCommandInvoke.js │ │ │ ├── customClearValue.js │ │ │ ├── customCommand.js │ │ │ ├── customCommandAppendResults.js │ │ │ ├── customCommandConstructor.js │ │ │ ├── customCommandWithFailure.js │ │ │ ├── customCommandWithFailureClass.js │ │ │ ├── customCommandWithSelector.js │ │ │ ├── customElementPresent.js │ │ │ ├── customExecute.js │ │ │ ├── customPauseWithNamespacedAlias.js │ │ │ ├── customPerform.js │ │ │ ├── customQuit.js │ │ │ ├── customWaitForPresent.js │ │ │ ├── es6async/ │ │ │ │ ├── basicPerform.js │ │ │ │ ├── basicPerformWithFluentApi.js │ │ │ │ ├── customExecuteAsync.js │ │ │ │ ├── customFindElements.js │ │ │ │ ├── customFindElementsES6.js │ │ │ │ ├── customPerform.js │ │ │ │ ├── customPerformClass.js │ │ │ │ ├── customVisible.js │ │ │ │ └── getEmail.js │ │ │ ├── other/ │ │ │ │ └── otherCommand.js │ │ │ ├── returnFn/ │ │ │ │ └── customCommandReturnFn.js │ │ │ └── typescript/ │ │ │ ├── tsWait.js │ │ │ └── tsWait.ts │ │ ├── cucumber-config-events.js │ │ ├── cucumber-config-expect.js │ │ ├── cucumber-config-noautostart.js │ │ ├── cucumber-config-parallel-formatters.js │ │ ├── cucumber-config-parallel.js │ │ ├── cucumber-config-waitFor.js │ │ ├── cucumber-config.js │ │ ├── existing-custom-commands/ │ │ │ └── click.js │ │ ├── external-globals-async.js │ │ ├── external-globals.js │ │ ├── globals-err.js │ │ ├── globals.js │ │ ├── minimalJsonReporter.json │ │ ├── mock-errors/ │ │ │ └── sample-error.js │ │ ├── nightwatch.json │ │ ├── otherPageobjects/ │ │ │ └── otherPage.js │ │ ├── package.json │ │ ├── pageobjects/ │ │ │ ├── commands/ │ │ │ │ ├── commandsClassWithName.js │ │ │ │ ├── common-commands.js │ │ │ │ ├── helperCommandsClass.js │ │ │ │ └── workingCommandsClass.js │ │ │ └── pages/ │ │ │ ├── addl/ │ │ │ │ └── simplePageObject.js │ │ │ ├── api/ │ │ │ │ └── method/ │ │ │ │ ├── bar.js │ │ │ │ └── foo.js │ │ │ ├── invalidPageObj.js │ │ │ ├── pageObjElementsArray.js │ │ │ ├── simplePageObj.js │ │ │ ├── simplePageObjDefaultXpath.js │ │ │ ├── simplePageObjWithCommandsClass.js │ │ │ ├── simplePageObjWithCommandsClassThrowsError.js │ │ │ ├── simplePageObjWithCommandsObject.js │ │ │ ├── simplePageObjWithError.js │ │ │ ├── waitForElementNotPresentPageObj.js │ │ │ └── workingPageObjPlain.js │ │ ├── parallelism-auto.json │ │ ├── parallelism-count.json │ │ ├── parallelism-customCommandsSync.json │ │ ├── parallelism-disabled.json │ │ ├── parallelism-envs.json │ │ ├── parallelism-execArgv-selected.json │ │ ├── parallelism-execArgv.json │ │ ├── parallelism-selenium-server.json │ │ ├── parallelism-workers.conf.js │ │ ├── parallelism.json │ │ ├── plugin/ │ │ │ ├── index.js │ │ │ └── nightwatch/ │ │ │ ├── assertions/ │ │ │ │ └── customAssertion.js │ │ │ ├── commands/ │ │ │ │ └── customCommand.js │ │ │ └── globals.js │ │ ├── reportObject.js │ │ ├── reporter/ │ │ │ ├── custom.js │ │ │ └── notvalid.js │ │ ├── withgeckodriver-concurrent.json │ │ ├── withmocha.json │ │ └── withsafari-concurrent.json │ ├── lib/ │ │ ├── command-mocks.js │ │ ├── fakedriver.js │ │ ├── globals/ │ │ │ ├── commands-w3c.js │ │ │ ├── commands.js │ │ │ └── expect.js │ │ ├── globals.js │ │ ├── mochatest.js │ │ ├── mockclient.js │ │ ├── mocks/ │ │ │ ├── api-loader/ │ │ │ │ ├── assertion-loader.js │ │ │ │ └── assertion.js │ │ │ ├── assertionLoader.js │ │ │ ├── core/ │ │ │ │ ├── assertion.js │ │ │ │ └── session.js │ │ │ ├── mocks-jsonwire.yaml │ │ │ └── mocks-w3c.yaml │ │ ├── mocks.json │ │ ├── mockserver.js │ │ ├── nightwatch.js │ │ ├── nocks.js │ │ ├── nockselements.js │ │ └── utils.js │ ├── mocha.opts │ ├── mochatests/ │ │ ├── async/ │ │ │ ├── sampleWithAsyncWithFailures.js │ │ │ └── sampleWithBeforeAndAfter.js │ │ └── integration/ │ │ ├── sampleWithAsyncTestcase.js │ │ ├── sampleWithBeforeAndAfter.js │ │ └── sampleWithFailures.js │ ├── nightwatch.json │ ├── sampletests/ │ │ ├── appendtestresult/ │ │ │ └── sampleWithAppendResults.js │ │ ├── async/ │ │ │ └── test/ │ │ │ └── sample.js │ │ ├── asyncwithexpectfailures/ │ │ │ └── sample.js │ │ ├── asyncwithfailures/ │ │ │ ├── sampleWithAsyncWithFailures.js │ │ │ ├── sampleWithAsyncWithSingleTestFailure.js │ │ │ └── sampleWithBeforeAndAfter.js │ │ ├── before-after/ │ │ │ ├── sampleSingleTest.js │ │ │ ├── sampleWithBeforeAndAfter.js │ │ │ ├── sampleWithBeforeAndAfterNoCallback.js │ │ │ └── syncBeforeAndAfter.js │ │ ├── beforewithcommand/ │ │ │ ├── commandInsideBefore.js │ │ │ └── commandInsideBeforeWithNoParams.js │ │ ├── empty/ │ │ │ └── .gitignore │ │ ├── es6await/ │ │ │ ├── basicSampleTest.js │ │ │ ├── incorrect-element-args/ │ │ │ │ └── sampleTestProperty.js │ │ │ ├── selenium/ │ │ │ │ ├── basicSampleTestSelenium.js │ │ │ │ ├── failures/ │ │ │ │ │ └── sampleWithFailures.js │ │ │ │ └── getlog/ │ │ │ │ └── getLogTestES6.js │ │ │ └── webdriver/ │ │ │ └── getText/ │ │ │ └── getTextES6.js │ │ ├── isPresent/ │ │ │ └── elementNotPresent.js │ │ ├── mixed/ │ │ │ └── sample.js │ │ ├── mixed-files/ │ │ │ ├── sampleJs.js │ │ │ └── sampleTs.ts │ │ ├── passwordValueRedacted/ │ │ │ └── passwordValueRedacted.js │ │ ├── reusebrowser/ │ │ │ ├── firstTest.js │ │ │ └── secondTest.js │ │ ├── sampleforreport/ │ │ │ ├── sample.js │ │ │ └── sampleWithFailure.js │ │ ├── simple/ │ │ │ └── test/ │ │ │ └── sample.js │ │ ├── srcfolders/ │ │ │ └── other_sample.js │ │ ├── suiteretries/ │ │ │ ├── locate-strategy/ │ │ │ │ └── suiteRetriesLocateStrategy.js │ │ │ └── sample/ │ │ │ └── suiteRetriesSample.js │ │ ├── syncnames/ │ │ │ └── sampleTest.js │ │ ├── tags/ │ │ │ └── sample.js │ │ ├── tagswithbrowserobject/ │ │ │ └── sample.js │ │ ├── trace/ │ │ │ └── sample.js │ │ ├── typescript/ │ │ │ └── sample.ts │ │ ├── unittests/ │ │ │ ├── sample.js │ │ │ └── sampleAnnotation.js │ │ ├── unknown-method/ │ │ │ └── UnknownMethod.js │ │ ├── usexpath/ │ │ │ └── sample.js │ │ ├── usingwithin/ │ │ │ ├── testNoWithin.js │ │ │ └── testWithin.js │ │ ├── webelement/ │ │ │ └── findWithSuppressNotFoundErrors.js │ │ ├── withaftereach/ │ │ │ └── sampleSingleTest.js │ │ ├── withasynchooks/ │ │ │ └── sampleAsyncHooks.js │ │ ├── withchaiexpect/ │ │ │ ├── sampleWithChai.js │ │ │ └── sampleWithGlobalExpect.js │ │ ├── withcommanderrors/ │ │ │ └── demoTest.js │ │ ├── withcustomcommands/ │ │ │ ├── element/ │ │ │ │ └── withCustomElementCommand.js │ │ │ ├── sampleWithAsyncFailures.js │ │ │ └── sampleWithFailures.js │ │ ├── withdescribe/ │ │ │ ├── basic/ │ │ │ │ ├── sample.js │ │ │ │ └── sampleWithOnly.js │ │ │ ├── basic2/ │ │ │ │ └── sample.js │ │ │ ├── failures/ │ │ │ │ ├── sampleSkipTestcases.js │ │ │ │ ├── sampleTest.js │ │ │ │ └── sampleTestWithAttribute.js │ │ │ ├── skipped/ │ │ │ │ ├── duplicateTestcases.js │ │ │ │ ├── skipBeforeAfterEach.js │ │ │ │ ├── skipTestcase.js │ │ │ │ └── skipTestsuite.js │ │ │ ├── suite-retries/ │ │ │ │ ├── sample.js │ │ │ │ └── sampleWithAttribute.js │ │ │ └── unittests/ │ │ │ └── sampleAnnotationWithDescribe.js │ │ ├── withelementerrors/ │ │ │ └── sampleTestWithElementError.js │ │ ├── witherrors/ │ │ │ └── sampleWithError.js │ │ ├── withes6asynccommands/ │ │ │ └── sampleWithAsyncCommands.js │ │ ├── withexclude/ │ │ │ ├── excluded/ │ │ │ │ ├── excluded-module.js │ │ │ │ └── not-excluded.js │ │ │ └── simple/ │ │ │ └── sample.js │ │ ├── withfailures/ │ │ │ └── sample.js │ │ ├── withpageobjects/ │ │ │ └── useXpathWithPageObjects.js │ │ ├── withservererrors/ │ │ │ └── sampleTestWithServerError.js │ │ ├── withsubfolders/ │ │ │ ├── simple/ │ │ │ │ └── sample.js │ │ │ └── tags/ │ │ │ └── sampleTags.js │ │ ├── withuknownRequire/ │ │ │ └── sample.js │ │ ├── withuncaughterrors/ │ │ │ ├── demoTestFine.js │ │ │ └── demoTestWithError.js │ │ ├── withverify/ │ │ │ ├── verifySampleFailures.js │ │ │ └── verifyWithinPerform.js │ │ ├── withwait/ │ │ │ └── elementNotPresent.js │ │ └── withwebdriver/ │ │ └── sampleTestUsingSeleniumWebdriver.js │ ├── src/ │ │ ├── analytics/ │ │ │ └── testAnalytics.js │ │ ├── api/ │ │ │ ├── assertions/ │ │ │ │ ├── testAttributeContains.js │ │ │ │ ├── testAttributeEquals.js │ │ │ │ ├── testAttributeMatches.js │ │ │ │ ├── testContainsText.js │ │ │ │ ├── testCssClassPresent.js │ │ │ │ ├── testCssProperty.js │ │ │ │ ├── testDomPropertyContains.js │ │ │ │ ├── testDomPropertyEquals.js │ │ │ │ ├── testDomPropertyMatches.js │ │ │ │ ├── testElementPresent.js │ │ │ │ ├── testElementsCount.js │ │ │ │ ├── testEnabled.js │ │ │ │ ├── testHasAttribute.js │ │ │ │ ├── testHasClass.js │ │ │ │ ├── testHidden.js │ │ │ │ ├── testSelected.js │ │ │ │ ├── testTextEquals.js │ │ │ │ ├── testTextMatches.js │ │ │ │ ├── testTitle.js │ │ │ │ ├── testTitleContains.js │ │ │ │ ├── testTitleEquals.js │ │ │ │ ├── testTitleMatches.js │ │ │ │ ├── testUrlContains.js │ │ │ │ ├── testUrlEquals.js │ │ │ │ ├── testUrlMatches.js │ │ │ │ ├── testValue.js │ │ │ │ ├── testValueContains.js │ │ │ │ ├── testValueEquals.js │ │ │ │ └── testVisible.js │ │ │ ├── commands/ │ │ │ │ ├── client/ │ │ │ │ │ ├── testAxeCommands.js │ │ │ │ │ ├── testCaptureNetworkRequests.js │ │ │ │ │ ├── testEnablePerformanceMetrics.js │ │ │ │ │ ├── testEnd.js │ │ │ │ │ ├── testGetPerformanceMetrics.js │ │ │ │ │ ├── testInit.js │ │ │ │ │ ├── testLocateStrategy.js │ │ │ │ │ ├── testMockNetworkResponse.js │ │ │ │ │ ├── testNavigateTo.js │ │ │ │ │ ├── testNightwatchRepl.js │ │ │ │ │ ├── testPause.js │ │ │ │ │ ├── testPerform.js │ │ │ │ │ ├── testRegisterBasicAuth.js │ │ │ │ │ ├── testSaveScreenshot.js │ │ │ │ │ ├── testSaveSnapshot.js │ │ │ │ │ ├── testSetDeviceDimensions.js │ │ │ │ │ ├── testSetGeolocation.js │ │ │ │ │ ├── testSetNetworkConditions.js │ │ │ │ │ ├── testTakeHeapSnapshot.js │ │ │ │ │ └── testWaitUntil.js │ │ │ │ ├── cookies/ │ │ │ │ │ ├── testCookie.js │ │ │ │ │ ├── testCookies.js │ │ │ │ │ └── testCookiesErrors.js │ │ │ │ ├── document/ │ │ │ │ │ ├── testExecute.js │ │ │ │ │ ├── testInjectScript.js │ │ │ │ │ └── testSource.js │ │ │ │ ├── element/ │ │ │ │ │ ├── testCheck.js │ │ │ │ │ ├── testClearValue.js │ │ │ │ │ ├── testClick.js │ │ │ │ │ ├── testClickAndHold.js │ │ │ │ │ ├── testClickMobile.js │ │ │ │ │ ├── testDoubleClick.js │ │ │ │ │ ├── testDragAndDrop.js │ │ │ │ │ ├── testGetAccessibleName.js │ │ │ │ │ ├── testGetAriaRole.js │ │ │ │ │ ├── testGetAttribute.js │ │ │ │ │ ├── testGetAttributeW3c.js │ │ │ │ │ ├── testGetCssProperty.js │ │ │ │ │ ├── testGetElementProperty.js │ │ │ │ │ ├── testGetElementRect.js │ │ │ │ │ ├── testGetElementSize.js │ │ │ │ │ ├── testGetFirstElementChild.js │ │ │ │ │ ├── testGetLastElementChild.js │ │ │ │ │ ├── testGetLocation.js │ │ │ │ │ ├── testGetLocationInView.js │ │ │ │ │ ├── testGetNextSibling.js │ │ │ │ │ ├── testGetPreviousSibling.js │ │ │ │ │ ├── testGetTagName.js │ │ │ │ │ ├── testGetText.js │ │ │ │ │ ├── testGetTitle.js │ │ │ │ │ ├── testGetValue.js │ │ │ │ │ ├── testHasDescendants.js │ │ │ │ │ ├── testIsEnabled.js │ │ │ │ │ ├── testIsPresent.js │ │ │ │ │ ├── testIsSelected.js │ │ │ │ │ ├── testIsVisible.js │ │ │ │ │ ├── testMoveToElement.js │ │ │ │ │ ├── testRightClick.js │ │ │ │ │ ├── testSendKeys.js │ │ │ │ │ ├── testSetAttribute.js │ │ │ │ │ ├── testSetPassword.js │ │ │ │ │ ├── testSetPasswordReport.js │ │ │ │ │ ├── testSetValue.js │ │ │ │ │ ├── testSubmitForm.js │ │ │ │ │ ├── testTakeElementScreenshot.js │ │ │ │ │ ├── testUncheck.js │ │ │ │ │ ├── testUploadFile.js │ │ │ │ │ ├── testWaitForElementNotPresent.js │ │ │ │ │ ├── testWaitForElementNotVisible.js │ │ │ │ │ ├── testWaitForElementPresent.js │ │ │ │ │ └── testWaitForElementVisible.js │ │ │ │ ├── logs/ │ │ │ │ │ ├── testCaptureBrowserConsoleLogs.js │ │ │ │ │ ├── testCaptureBrowserExceptions.js │ │ │ │ │ ├── testGetLog.js │ │ │ │ │ ├── testGetLogTypes.js │ │ │ │ │ └── testIsLogAvailable.js │ │ │ │ ├── testPageSource.js │ │ │ │ ├── testSendKeys.js │ │ │ │ ├── testUpdateValue.js │ │ │ │ ├── web-element/ │ │ │ │ │ ├── assert/ │ │ │ │ │ │ └── testElementAssertions.js │ │ │ │ │ ├── testCheck.js │ │ │ │ │ ├── testClear.js │ │ │ │ │ ├── testClick.js │ │ │ │ │ ├── testClickAndHold.js │ │ │ │ │ ├── testDoubleClick.js │ │ │ │ │ ├── testDragAndDrop.js │ │ │ │ │ ├── testElement.js │ │ │ │ │ ├── testFind.js │ │ │ │ │ ├── testFindAll.js │ │ │ │ │ ├── testFindAllByAltText.js │ │ │ │ │ ├── testFindAllByPlaceholderText.js │ │ │ │ │ ├── testFindAllByRole.js │ │ │ │ │ ├── testFindAllByText.js │ │ │ │ │ ├── testFindByAltText.js │ │ │ │ │ ├── testFindByLabelText.js │ │ │ │ │ ├── testFindByPlaceholderText.js │ │ │ │ │ ├── testFindByRole.js │ │ │ │ │ ├── testFindByText.js │ │ │ │ │ ├── testFindOnErrors.js │ │ │ │ │ ├── testGetAccessibleName.js │ │ │ │ │ ├── testGetAriaRole.js │ │ │ │ │ ├── testGetAttribute.js │ │ │ │ │ ├── testGetCssProperty.js │ │ │ │ │ ├── testGetFirstElementChild.js │ │ │ │ │ ├── testGetId.js │ │ │ │ │ ├── testGetLastElementChild.js │ │ │ │ │ ├── testGetNextElementSibling.js │ │ │ │ │ ├── testGetPreviousElementSibling.js │ │ │ │ │ ├── testGetProperty.js │ │ │ │ │ ├── testGetRect.js │ │ │ │ │ ├── testGetShadowRoot.js │ │ │ │ │ ├── testGetTagName.js │ │ │ │ │ ├── testGetText.js │ │ │ │ │ ├── testGetValue.js │ │ │ │ │ ├── testIsActive.js │ │ │ │ │ ├── testIsEnabled.js │ │ │ │ │ ├── testIsPresent.js │ │ │ │ │ ├── testIsSelected.js │ │ │ │ │ ├── testIsVisible.js │ │ │ │ │ ├── testMoveTo.js │ │ │ │ │ ├── testRightClick.js │ │ │ │ │ ├── testSendKeys.js │ │ │ │ │ ├── testSetAttribute.js │ │ │ │ │ ├── testSetProperty.js │ │ │ │ │ ├── testSetValue.js │ │ │ │ │ ├── testShadowFind.js │ │ │ │ │ ├── testShadowFindAll.js │ │ │ │ │ ├── testSubmit.js │ │ │ │ │ ├── testTakeScreenshot.js │ │ │ │ │ ├── testUncheck.js │ │ │ │ │ ├── testUpdate.js │ │ │ │ │ └── testUpload.js │ │ │ │ └── window/ │ │ │ │ ├── testCloseWindow.js │ │ │ │ ├── testMaximizeWindow.js │ │ │ │ ├── testWindowCommands.js │ │ │ │ ├── testWindowCommandsW3C.js │ │ │ │ └── testWindowNamespaceCommands.js │ │ │ ├── expect/ │ │ │ │ ├── testExpectActive.js │ │ │ │ ├── testExpectAttribute.js │ │ │ │ ├── testExpectCookie.js │ │ │ │ ├── testExpectCount.js │ │ │ │ ├── testExpectCss.js │ │ │ │ ├── testExpectEnabled.js │ │ │ │ ├── testExpectPresent.js │ │ │ │ ├── testExpectProperty.js │ │ │ │ ├── testExpectSelected.js │ │ │ │ ├── testExpectText.js │ │ │ │ ├── testExpectTitle.js │ │ │ │ ├── testExpectType.js │ │ │ │ ├── testExpectUrl.js │ │ │ │ ├── testExpectValue.js │ │ │ │ └── testExpectVisible.js │ │ │ ├── expect-global/ │ │ │ │ ├── testElementAttribute.js │ │ │ │ ├── testElementCss.js │ │ │ │ ├── testElementIsDisplayed.js │ │ │ │ ├── testElementIsEnabled.js │ │ │ │ ├── testElementIsSelected.js │ │ │ │ ├── testElementProperty.js │ │ │ │ └── testElementText.js │ │ │ └── protocol/ │ │ │ ├── testActivity.js │ │ │ ├── testAlerts.js │ │ │ ├── testBrowserCommands.js │ │ │ ├── testChrome.js │ │ │ ├── testContext.js │ │ │ ├── testCookies.js │ │ │ ├── testDoubleClick.js │ │ │ ├── testElementCommands.js │ │ │ ├── testEnsure.js │ │ │ ├── testFirefox.js │ │ │ ├── testFrame.js │ │ │ ├── testFrameCommand.js │ │ │ ├── testGeolocation.js │ │ │ ├── testKeyboardInteraction.js │ │ │ ├── testKeys.js │ │ │ ├── testLog.js │ │ │ ├── testMouseButtonClick.js │ │ │ ├── testMoveTo.js │ │ │ ├── testOrientation.js │ │ │ ├── testReleaseMouseButton.js │ │ │ ├── testResetApp.js │ │ │ ├── testScreenshot.js │ │ │ ├── testSendKeys.js │ │ │ ├── testSession.js │ │ │ ├── testSetValue.js │ │ │ ├── testSource.js │ │ │ ├── testStatus.js │ │ │ ├── testSubmit.js │ │ │ ├── testTimeouts.js │ │ │ ├── testTitle.js │ │ │ ├── testUploadFile.js │ │ │ ├── testUrl.js │ │ │ ├── testWindowCommands.js │ │ │ ├── testWindowPosition.js │ │ │ ├── testWindowRect.js │ │ │ └── testWindowSize.js │ │ ├── apidemos/ │ │ │ ├── actions-api/ │ │ │ │ ├── asyncPerformActionsTest.js │ │ │ │ └── performActionsTest.js │ │ │ ├── angular-test/ │ │ │ │ └── runAngularDemo.js │ │ │ ├── appium/ │ │ │ │ └── testAppiumAPI.js │ │ │ ├── cdp/ │ │ │ │ └── testCdpCommands.js │ │ │ ├── chrome/ │ │ │ │ └── testChromeAPI.js │ │ │ ├── cookies/ │ │ │ │ └── testCookieCommands.js │ │ │ ├── custom-commands/ │ │ │ │ ├── testCustomCommandAutoInvoke.js │ │ │ │ ├── testCustomCommandSync.js │ │ │ │ ├── testCustomCommandsAsync.js │ │ │ │ ├── testCustomExecuteAsync.js │ │ │ │ └── testCustomPauseWithNamespacedAlias.js │ │ │ ├── elements/ │ │ │ │ ├── testElementGlobal.js │ │ │ │ ├── testFindElementsEs6CustomCommand.js │ │ │ │ └── testFindElementsWithPageCommand.js │ │ │ ├── ensure/ │ │ │ │ └── testEnsure.js │ │ │ ├── expect-global/ │ │ │ │ └── testExpect.js │ │ │ ├── firefox/ │ │ │ │ └── testFirefoxAPI.js │ │ │ ├── namespaced-api/ │ │ │ │ └── testNamespacedApi.js │ │ │ ├── navigation/ │ │ │ │ └── testNavigationCommands.js │ │ │ ├── page-objects/ │ │ │ │ └── testCommandsReturnType.js │ │ │ ├── relative-locators/ │ │ │ │ └── testWithRelativeLocators.js │ │ │ └── web-elements/ │ │ │ ├── testAssert.js │ │ │ ├── testElementApiWithPageObjects.js │ │ │ └── testWaitUntil.js │ │ ├── cli/ │ │ │ ├── testCliRunner.js │ │ │ ├── testCliRunnerGenerate.js │ │ │ ├── testCliRunnerMocha.js │ │ │ ├── testDemoTypescriptFile.js │ │ │ ├── testParallelExecution.js │ │ │ ├── testParallelExecutionExitCode.js │ │ │ └── testServiceCreationFromCli.js │ │ ├── core/ │ │ │ ├── testAsyncTree.js │ │ │ ├── testCreateSession.js │ │ │ ├── testPageObjectApi.js │ │ │ ├── testPageObjectCommands.js │ │ │ ├── testPageObjectCustomCommands.js │ │ │ ├── testPageObjectWaitForElementNotPresent.js │ │ │ ├── testPlugins.js │ │ │ ├── testQueue.js │ │ │ ├── testRequestWithCredentials.js │ │ │ └── testTreeNode.js │ │ ├── element/ │ │ │ ├── testCommandsElementSelectors.js │ │ │ ├── testElementCommands.js │ │ │ ├── testExpectElementSelectors.js │ │ │ ├── testIndexedElementSelectors.js │ │ │ ├── testPageObjectElementSelectors-use_xpath.js │ │ │ ├── testPageObjectElementSelectors.js │ │ │ └── testProtocolElementSelectors.js │ │ ├── globals.js │ │ ├── index/ │ │ │ ├── testDefaultPathPrefixOption.js │ │ │ ├── testMobileComponent.js │ │ │ ├── testNightwatchIndex.js │ │ │ ├── testProgrammaticApis.js │ │ │ ├── testRequest.js │ │ │ ├── testRequestTimeout.js │ │ │ ├── testRunProtocolAction.js │ │ │ ├── testSettings.js │ │ │ └── transport/ │ │ │ ├── testAppiumTransport.js │ │ │ ├── testBrowserstackTransport.js │ │ │ ├── testChromeOptions.js │ │ │ ├── testCreateTransport.js │ │ │ ├── testEdgeOptions.js │ │ │ ├── testFirefoxOptions.js │ │ │ ├── testIeOptions.js │ │ │ ├── testMobileOptions.js │ │ │ ├── testMobileWebSupport.js │ │ │ ├── testSafariOptions.js │ │ │ └── testSeleniumTransport.js │ │ ├── runner/ │ │ │ ├── cli/ │ │ │ │ └── testCliRunnerParallel.js │ │ │ ├── cucumber-integration/ │ │ │ │ ├── testCliArgs.js │ │ │ │ ├── testCucumberSampleTests.js │ │ │ │ └── testCucumberWithBrowserstack.js │ │ │ ├── mocha/ │ │ │ │ ├── testMochaRunnerAsync.js │ │ │ │ └── testMochaRunnerIntegration.js │ │ │ ├── testEventReporter.js │ │ │ ├── testInspectorExtension.js │ │ │ ├── testReporter.js │ │ │ ├── testRerunFunctionality.js │ │ │ ├── testRunBrowserstackTransport.js │ │ │ ├── testRunTestcase.js │ │ │ ├── testRunTestsuite.js │ │ │ ├── testRunTestsuiteWithSuiteRetries.js │ │ │ ├── testRunWithCommandErrors.js │ │ │ ├── testRunWithCustomCommands.js │ │ │ ├── testRunWithExclude.js │ │ │ ├── testRunWithExistingCommands.js │ │ │ ├── testRunWithExternalGlobals.js │ │ │ ├── testRunWithGlobalHooks.js │ │ │ ├── testRunWithGlobalReporter.js │ │ │ ├── testRunWithHooks.js │ │ │ ├── testRunWithMultipleSources.js │ │ │ ├── testRunWithServerErrors.js │ │ │ ├── testRunWithTags.js │ │ │ ├── testRunWithVerify.js │ │ │ ├── testRunner.js │ │ │ ├── testRunnerChaiExpect.js │ │ │ ├── testRunnerEndSessionOnFail.js │ │ │ ├── testRunnerEs6Async.js │ │ │ ├── testRunnerHtmlOutput.js │ │ │ ├── testRunnerJsonOutput.js │ │ │ ├── testRunnerJunitOutput.js │ │ │ ├── testRunnerMixedFiles.js │ │ │ ├── testRunnerRerunJsonOutput.js │ │ │ ├── testRunnerScreenshotsOutput.js │ │ │ ├── testRunnerSessionCreate.js │ │ │ ├── testRunnerTypeScript.js │ │ │ ├── testRunnerUncaughtErrors.js │ │ │ ├── testRunnerUnitTests.js │ │ │ ├── testRunnerUsingWithin.js │ │ │ ├── testRunnerWithAsyncAssertionFailure.js │ │ │ ├── testRunnerWithPageObjects.js │ │ │ ├── testRunnerWithTrace.js │ │ │ └── testTagsMatcher.js │ │ ├── service-builders/ │ │ │ ├── testAppiumServer.js │ │ │ ├── testChromeDriver.js │ │ │ ├── testEdgeDriver.js │ │ │ ├── testFirefoxDriver.js │ │ │ ├── testSafariDriver.js │ │ │ └── testSeleniumServer.js │ │ └── utils/ │ │ ├── __data__/ │ │ │ ├── meaning-of-life.js │ │ │ ├── meaning-of-life.mjs │ │ │ ├── mixed-exports.mjs │ │ │ └── named-exports.mjs │ │ ├── testRequireModule.js │ │ ├── testStackTrace.js │ │ └── testUtils.js │ ├── tsconfig.json │ └── typescript-tests/ │ ├── demo.ts │ └── tsconfig.nightwatch.json └── types/ ├── assertions.d.ts ├── chrome-options.d.ts ├── custom-assertion.d.ts ├── custom-command.d.ts ├── desired-capabilities.d.ts ├── expect.d.ts ├── globals.d.ts ├── index.d.ts ├── nightwatch-options.d.ts ├── page-object.d.ts ├── tests/ │ ├── actions.test-d.ts │ ├── appiumCommands.test-d.ts │ ├── chromiumClientCommands.test-d.ts │ ├── clientCommands.test-d.ts │ ├── component.test-d.ts │ ├── customCommands.test-d.ts │ ├── describe.test-d.ts │ ├── elementCommands.test-d.ts │ ├── expect.test-d.ts │ ├── globalElementApi.test-d.ts │ ├── index.test-d.ts │ ├── namespaceCommands.test-d.ts │ ├── page-object.test-d.ts │ ├── programmaticApi.test-d.ts │ ├── tsconfig.json │ ├── webElement.test-d.ts │ └── webdriverProtocolCommands.test-d.ts ├── utils.d.ts └── web-element.d.ts