oxygen-cli 1.40.2-beta.1 → 1.40.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1750 -1742
- package/LICENSE +672 -672
- package/README.md +37 -37
- package/build/core/OxygenCore.js +1 -1
- package/build/core/OxygenEvents.js +1 -1
- package/build/core/OxygenModule.js +1 -1
- package/build/core/OxygenService.js +1 -1
- package/build/core/OxygenSubModule.js +1 -1
- package/build/core/WebDriverModule.js +1 -1
- package/build/core/utils.js +1 -1
- package/build/errors/HookError.js +1 -1
- package/build/errors/ModuleError.js +1 -1
- package/build/errors/ModuleUnavailableError.js +1 -1
- package/build/errors/OxygenError.js +1 -1
- package/build/errors/ScriptNotFound.js +1 -1
- package/build/errors/helper.js +1 -2
- package/build/index.js +1 -1
- package/build/lib/cli-util.js +1 -5
- package/build/lib/cli.js +1 -1
- package/build/lib/debugger.js +1 -1
- package/build/lib/img-merge.js +1 -1
- package/build/lib/launcher.js +1 -1
- package/build/lib/logger.js +43 -43
- package/build/lib/moduleRequire.js +1 -1
- package/build/lib/parallel-launcher.js +1 -1
- package/build/lib/param-manager.js +1 -1
- package/build/lib/param-reader-csv.js +1 -1
- package/build/lib/param-reader-excel.js +1 -1
- package/build/lib/param-reader-json.js +1 -1
- package/build/lib/text-to-image.js +1 -1
- package/build/lib/util.js +1 -1
- package/build/model/case-result.js +1 -1
- package/build/model/failure.js +1 -1
- package/build/model/status.js +1 -1
- package/build/model/step-result.js +1 -1
- package/build/model/suite-result.js +1 -1
- package/build/model/test-result.js +1 -1
- package/build/model/testcase.js +1 -1
- package/build/model/testsuite.js +1 -1
- package/build/ox_modules/index.js +1 -9
- package/build/ox_modules/module-assert.js +37 -37
- package/build/ox_modules/module-date.js +24 -24
- package/build/ox_modules/module-db.js +52 -52
- package/build/ox_modules/module-email.js +59 -59
- package/build/ox_modules/module-eyes.js +34 -34
- package/build/ox_modules/module-http/ntlm-util.js +10 -10
- package/build/ox_modules/module-http/ntlm.js +15 -15
- package/build/ox_modules/module-http.js +132 -132
- package/build/ox_modules/module-log.js +27 -27
- package/build/ox_modules/module-mailinator.js +87 -87
- package/build/ox_modules/module-mob/commands/alertAccept.js +17 -17
- package/build/ox_modules/module-mob/commands/alertDismiss.js +17 -17
- package/build/ox_modules/module-mob/commands/assertAlert.js +20 -20
- package/build/ox_modules/module-mob/commands/assertText.js +21 -21
- package/build/ox_modules/module-mob/commands/assertTitle.js +19 -19
- package/build/ox_modules/module-mob/commands/assertValue.js +18 -18
- package/build/ox_modules/module-mob/commands/back.js +16 -16
- package/build/ox_modules/module-mob/commands/clear.js +19 -19
- package/build/ox_modules/module-mob/commands/click.js +17 -17
- package/build/ox_modules/module-mob/commands/clickHidden.js +17 -17
- package/build/ox_modules/module-mob/commands/clickLong.js +18 -18
- package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +18 -18
- package/build/ox_modules/module-mob/commands/closeApp.js +16 -16
- package/build/ox_modules/module-mob/commands/debug.js +16 -16
- package/build/ox_modules/module-mob/commands/dragAndDrop.js +19 -19
- package/build/ox_modules/module-mob/commands/enableNetwork.js +27 -27
- package/build/ox_modules/module-mob/commands/execute.js +21 -21
- package/build/ox_modules/module-mob/commands/findElement.js +20 -20
- package/build/ox_modules/module-mob/commands/findElements.js +23 -23
- package/build/ox_modules/module-mob/commands/getAlertText.js +17 -17
- package/build/ox_modules/module-mob/commands/getAppiumLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getBrowserLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getCurrentActivity.js +15 -15
- package/build/ox_modules/module-mob/commands/getCurrentPackage.js +15 -15
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +16 -16
- package/build/ox_modules/module-mob/commands/getDeviceTime.js +16 -16
- package/build/ox_modules/module-mob/commands/getLocation.js +20 -20
- package/build/ox_modules/module-mob/commands/getSource.js +16 -16
- package/build/ox_modules/module-mob/commands/getText.js +18 -18
- package/build/ox_modules/module-mob/commands/getTitle.js +13 -13
- package/build/ox_modules/module-mob/commands/getUrl.js +17 -17
- package/build/ox_modules/module-mob/commands/getValue.js +18 -18
- package/build/ox_modules/module-mob/commands/getWindowHandles.js +17 -17
- package/build/ox_modules/module-mob/commands/hideKeyboard.js +21 -21
- package/build/ox_modules/module-mob/commands/index.js +1 -1
- package/build/ox_modules/module-mob/commands/installApp.js +16 -16
- package/build/ox_modules/module-mob/commands/isAppInstalled.js +16 -16
- package/build/ox_modules/module-mob/commands/isCheckable.js +18 -18
- package/build/ox_modules/module-mob/commands/isChecked.js +18 -18
- package/build/ox_modules/module-mob/commands/isClickable.js +18 -18
- package/build/ox_modules/module-mob/commands/isExist.js +19 -19
- package/build/ox_modules/module-mob/commands/isSelected.js +23 -23
- package/build/ox_modules/module-mob/commands/isVisible.js +19 -19
- package/build/ox_modules/module-mob/commands/isWebViewContext.js +16 -16
- package/build/ox_modules/module-mob/commands/launchApp.js +15 -15
- package/build/ox_modules/module-mob/commands/longPressKeyCode.js +18 -18
- package/build/ox_modules/module-mob/commands/open.js +17 -17
- package/build/ox_modules/module-mob/commands/pause.js +16 -16
- package/build/ox_modules/module-mob/commands/removeApp.js +16 -16
- package/build/ox_modules/module-mob/commands/resetApp.js +15 -15
- package/build/ox_modules/module-mob/commands/scrollIntoElement.js +22 -22
- package/build/ox_modules/module-mob/commands/scrollIntoView.js +27 -27
- package/build/ox_modules/module-mob/commands/select.js +24 -24
- package/build/ox_modules/module-mob/commands/selectFrame.js +23 -23
- package/build/ox_modules/module-mob/commands/selectWindow.js +28 -28
- package/build/ox_modules/module-mob/commands/sendKeys.js +29 -29
- package/build/ox_modules/module-mob/commands/setContext.js +16 -16
- package/build/ox_modules/module-mob/commands/setNativeContext.js +15 -15
- package/build/ox_modules/module-mob/commands/setTimeout.js +21 -21
- package/build/ox_modules/module-mob/commands/setWebViewContext.js +16 -16
- package/build/ox_modules/module-mob/commands/shake.js +16 -16
- package/build/ox_modules/module-mob/commands/smsClickLink.js +19 -19
- package/build/ox_modules/module-mob/commands/smsGetText.js +20 -20
- package/build/ox_modules/module-mob/commands/swipe.js +20 -20
- package/build/ox_modules/module-mob/commands/swipeElement.js +20 -20
- package/build/ox_modules/module-mob/commands/swipeScreen.js +20 -20
- package/build/ox_modules/module-mob/commands/takeScreenshot.js +17 -17
- package/build/ox_modules/module-mob/commands/tap.js +17 -17
- package/build/ox_modules/module-mob/commands/type.js +20 -20
- package/build/ox_modules/module-mob/commands/unlockPattern.js +22 -22
- package/build/ox_modules/module-mob/commands/waitForExist.js +18 -18
- package/build/ox_modules/module-mob/commands/waitForInteractable.js +17 -17
- package/build/ox_modules/module-mob/commands/waitForVisible.js +17 -17
- package/build/ox_modules/module-mob.js +74 -74
- package/build/ox_modules/module-pdf.js +35 -35
- package/build/ox_modules/module-proxy.js +77 -77
- package/build/ox_modules/module-serial.js +55 -55
- package/build/ox_modules/module-shell.js +52 -33
- package/build/ox_modules/module-soap.js +72 -72
- package/build/ox_modules/module-twilio.js +41 -41
- package/build/ox_modules/module-utils.js +91 -91
- package/build/ox_modules/module-web/commands/alertAccept.js +17 -17
- package/build/ox_modules/module-web/commands/alertDismiss.js +17 -17
- package/build/ox_modules/module-web/commands/assertAlert.js +20 -20
- package/build/ox_modules/module-web/commands/assertExist.js +17 -17
- package/build/ox_modules/module-web/commands/assertSelectedLabel.js +21 -21
- package/build/ox_modules/module-web/commands/assertSelectedValue.js +21 -21
- package/build/ox_modules/module-web/commands/assertText.js +21 -21
- package/build/ox_modules/module-web/commands/assertTextNotPresent.js +18 -18
- package/build/ox_modules/module-web/commands/assertTextPresent.js +18 -18
- package/build/ox_modules/module-web/commands/assertTitle.js +19 -19
- package/build/ox_modules/module-web/commands/assertValue.js +20 -20
- package/build/ox_modules/module-web/commands/back.js +16 -16
- package/build/ox_modules/module-web/commands/clear.js +18 -18
- package/build/ox_modules/module-web/commands/click.js +25 -25
- package/build/ox_modules/module-web/commands/clickHidden.js +23 -23
- package/build/ox_modules/module-web/commands/closeWindow.js +15 -15
- package/build/ox_modules/module-web/commands/debug.js +15 -15
- package/build/ox_modules/module-web/commands/deleteCookies.js +12 -12
- package/build/ox_modules/module-web/commands/deselect.js +22 -22
- package/build/ox_modules/module-web/commands/doubleClick.js +17 -17
- package/build/ox_modules/module-web/commands/dragAndDrop.js +20 -20
- package/build/ox_modules/module-web/commands/execute.js +24 -24
- package/build/ox_modules/module-web/commands/fileBrowse.js +18 -18
- package/build/ox_modules/module-web/commands/findElement.js +19 -19
- package/build/ox_modules/module-web/commands/findElements.js +22 -22
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +14 -14
- package/build/ox_modules/module-web/commands/getAlertText.js +16 -16
- package/build/ox_modules/module-web/commands/getAttribute.js +19 -19
- package/build/ox_modules/module-web/commands/getBrowserLogs.js +17 -17
- package/build/ox_modules/module-web/commands/getCookies.js +13 -13
- package/build/ox_modules/module-web/commands/getCssValue.js +19 -19
- package/build/ox_modules/module-web/commands/getElementCount.js +17 -17
- package/build/ox_modules/module-web/commands/getHTML.js +17 -17
- package/build/ox_modules/module-web/commands/getSource.js +16 -16
- package/build/ox_modules/module-web/commands/getText.js +18 -18
- package/build/ox_modules/module-web/commands/getTitle.js +12 -12
- package/build/ox_modules/module-web/commands/getUrl.js +16 -16
- package/build/ox_modules/module-web/commands/getValue.js +18 -18
- package/build/ox_modules/module-web/commands/getWindowHandles.js +16 -16
- package/build/ox_modules/module-web/commands/getWindowSize.js +16 -16
- package/build/ox_modules/module-web/commands/getXMLPageSource.js +16 -16
- package/build/ox_modules/module-web/commands/index.js +1 -1
- package/build/ox_modules/module-web/commands/isAlertPresent.js +16 -16
- package/build/ox_modules/module-web/commands/isChecked.js +18 -18
- package/build/ox_modules/module-web/commands/isExist.js +19 -19
- package/build/ox_modules/module-web/commands/isInteractable.js +22 -22
- package/build/ox_modules/module-web/commands/isSelected.js +23 -23
- package/build/ox_modules/module-web/commands/isVisible.js +19 -19
- package/build/ox_modules/module-web/commands/makeVisible.js +25 -25
- package/build/ox_modules/module-web/commands/maximizeWindow.js +14 -14
- package/build/ox_modules/module-web/commands/minimizeWindow.js +14 -14
- package/build/ox_modules/module-web/commands/mock.js +20 -20
- package/build/ox_modules/module-web/commands/mockClearAll.js +12 -12
- package/build/ox_modules/module-web/commands/mockRestoreAll.js +12 -12
- package/build/ox_modules/module-web/commands/newWindow.js +16 -16
- package/build/ox_modules/module-web/commands/open.js +16 -16
- package/build/ox_modules/module-web/commands/pause.js +15 -15
- package/build/ox_modules/module-web/commands/point.js +21 -21
- package/build/ox_modules/module-web/commands/pointJS.js +15 -15
- package/build/ox_modules/module-web/commands/refresh.js +15 -15
- package/build/ox_modules/module-web/commands/rightClick.js +17 -17
- package/build/ox_modules/module-web/commands/rightClickActions.js +19 -19
- package/build/ox_modules/module-web/commands/scrollToElement.js +21 -21
- package/build/ox_modules/module-web/commands/select.js +23 -23
- package/build/ox_modules/module-web/commands/selectFrame.js +24 -24
- package/build/ox_modules/module-web/commands/selectWindow.js +27 -27
- package/build/ox_modules/module-web/commands/sendKeys.js +22 -22
- package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +20 -20
- package/build/ox_modules/module-web/commands/setTimeout.js +21 -21
- package/build/ox_modules/module-web/commands/setWindowSize.js +17 -17
- package/build/ox_modules/module-web/commands/takeScreenshot.js +17 -17
- package/build/ox_modules/module-web/commands/type.js +20 -20
- package/build/ox_modules/module-web/commands/verifyAlert.js +20 -20
- package/build/ox_modules/module-web/commands/verifyExist.js +17 -17
- package/build/ox_modules/module-web/commands/verifySelectedLabel.js +21 -21
- package/build/ox_modules/module-web/commands/verifySelectedValue.js +21 -21
- package/build/ox_modules/module-web/commands/verifyText.js +21 -21
- package/build/ox_modules/module-web/commands/verifyTextNotPresent.js +18 -18
- package/build/ox_modules/module-web/commands/verifyTextPresent.js +18 -18
- package/build/ox_modules/module-web/commands/verifyTitle.js +19 -19
- package/build/ox_modules/module-web/commands/verifyValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForAngular.js +19 -19
- package/build/ox_modules/module-web/commands/waitForExist.js +17 -17
- package/build/ox_modules/module-web/commands/waitForInteractable.js +17 -17
- package/build/ox_modules/module-web/commands/waitForNotExist.js +17 -17
- package/build/ox_modules/module-web/commands/waitForNotText.js +20 -20
- package/build/ox_modules/module-web/commands/waitForNotValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForText.js +20 -20
- package/build/ox_modules/module-web/commands/waitForValue.js +20 -20
- package/build/ox_modules/module-web/commands/waitForVisible.js +17 -17
- package/build/ox_modules/module-web/commands/waitForWindow.js +22 -22
- package/build/ox_modules/module-web.js +94 -94
- package/build/ox_modules/module-win/commands/assertText.js +17 -17
- package/build/ox_modules/module-win/commands/assertTitle.js +15 -15
- package/build/ox_modules/module-win/commands/assertValue.js +14 -14
- package/build/ox_modules/module-win/commands/back.js +11 -11
- package/build/ox_modules/module-win/commands/clear.js +13 -13
- package/build/ox_modules/module-win/commands/click.js +13 -13
- package/build/ox_modules/module-win/commands/clickLong.js +14 -14
- package/build/ox_modules/module-win/commands/clickMultipleTimes.js +14 -14
- package/build/ox_modules/module-win/commands/findElement.js +15 -15
- package/build/ox_modules/module-win/commands/findElements.js +15 -15
- package/build/ox_modules/module-win/commands/getAppiumLogs.js +12 -12
- package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +15 -15
- package/build/ox_modules/module-win/commands/getLocation.js +14 -14
- package/build/ox_modules/module-win/commands/getSource.js +12 -12
- package/build/ox_modules/module-win/commands/getText.js +14 -14
- package/build/ox_modules/module-win/commands/getValue.js +14 -14
- package/build/ox_modules/module-win/commands/getWindowHandles.js +15 -15
- package/build/ox_modules/module-win/commands/index.js +1 -1
- package/build/ox_modules/module-win/commands/isCheckable.js +14 -14
- package/build/ox_modules/module-win/commands/isChecked.js +14 -14
- package/build/ox_modules/module-win/commands/isClickable.js +14 -14
- package/build/ox_modules/module-win/commands/isExist.js +15 -15
- package/build/ox_modules/module-win/commands/isSelected.js +14 -14
- package/build/ox_modules/module-win/commands/isVisible.js +15 -15
- package/build/ox_modules/module-win/commands/open.js +13 -13
- package/build/ox_modules/module-win/commands/pause.js +12 -12
- package/build/ox_modules/module-win/commands/rightClick.js +13 -13
- package/build/ox_modules/module-win/commands/selectWindow.js +23 -23
- package/build/ox_modules/module-win/commands/sendKeys.js +22 -22
- package/build/ox_modules/module-win/commands/setTimeout.js +17 -17
- package/build/ox_modules/module-win/commands/takeScreenshot.js +16 -16
- package/build/ox_modules/module-win/commands/tap.js +13 -13
- package/build/ox_modules/module-win/commands/type.js +16 -16
- package/build/ox_modules/module-win/commands/waitForExist.js +14 -14
- package/build/ox_modules/module-win/commands/waitForInteractable.js +16 -16
- package/build/ox_modules/module-win/commands/waitForVisible.js +13 -13
- package/build/ox_modules/module-win.js +47 -47
- package/build/ox_modules/utils.js +8 -8
- package/build/ox_reporters/excel/template.json +48 -48
- package/build/ox_reporters/html/index.ejs +163 -163
- package/build/ox_reporters/html/summary.ejs +77 -77
- package/build/ox_reporters/html/tests-details.ejs +134 -134
- package/build/ox_reporters/html/tests-devices-browsers.ejs +83 -83
- package/build/ox_reporters/reporter-excel.js +1 -1
- package/build/ox_reporters/reporter-html.js +1 -1
- package/build/ox_reporters/reporter-json.js +1 -1
- package/build/ox_reporters/reporter-junit.js +1 -1
- package/build/ox_reporters/reporter-pdf.js +1 -1
- package/build/ox_reporters/reporter-rp.js +73 -42
- package/build/ox_reporters/reporter-xml.js +1 -1
- package/build/ox_services/service-devtools/submodule-network.js +1 -1
- package/build/ox_services/service-devtools.js +1 -1
- package/build/reporter/FileReporterBase.js +1 -1
- package/build/reporter/ReportAggregator.js +5 -13
- package/build/reporter/ReporterBase.js +1 -1
- package/build/reporter/WebSocketReporter.js +1 -1
- package/build/runners/WorkerProcess.js +1 -1
- package/build/runners/cucumber/CucumberEventListener.js +1 -1
- package/build/runners/cucumber/CucumberReporter.js +1 -1
- package/build/runners/cucumber/CucumberWorker.js +1 -1
- package/build/runners/cucumber/index.js +1 -1
- package/build/runners/cucumber/worker.js +1 -1
- package/build/runners/index.js +1 -1
- package/build/runners/oxygen/OxygenWorker.js +1 -1
- package/build/runners/oxygen/index.js +1 -1
- package/build/runners/oxygen/worker.js +1 -1
- package/config/default.json +6 -6
- package/package.json +137 -139
- package/types/index.d.ts +70 -70
- package/types/module-eyes.d.ts +39 -39
- package/types/module-http.d.ts +163 -163
- package/types/module-log.d.ts +34 -34
- package/types/module-mob.d.ts +966 -966
- package/types/module-pdf.d.ts +40 -40
- package/types/module-proxy.d.ts +100 -100
- package/types/module-shell.d.ts +24 -24
- package/types/module-utils.d.ts +99 -99
- package/types/module-web.d.ts +1053 -1053
- package/types/module-win.d.ts +352 -352
- package/types/oxygen.d.ts +53 -53
- package/build/ox_modules/module-mongo.js +0 -302
- package/log.txt +0 -1614
- package/reports/2025-06-08_231627/report.html +0 -440
- package/reports/2025-06-09_223615/report.html +0 -440
- package/transpiled/mongodb/etc/prepare.js +0 -18
- package/transpiled/mongodb/lib/admin.js +0 -182
- package/transpiled/mongodb/lib/beta.js +0 -26
- package/transpiled/mongodb/lib/bson.js +0 -220
- package/transpiled/mongodb/lib/bulk/common.js +0 -1041
- package/transpiled/mongodb/lib/bulk/ordered.js +0 -76
- package/transpiled/mongodb/lib/bulk/unordered.js +0 -102
- package/transpiled/mongodb/lib/change_stream.js +0 -517
- package/transpiled/mongodb/lib/client-side-encryption/auto_encrypter.js +0 -329
- package/transpiled/mongodb/lib/client-side-encryption/client_encryption.js +0 -779
- package/transpiled/mongodb/lib/client-side-encryption/crypto_callbacks.js +0 -95
- package/transpiled/mongodb/lib/client-side-encryption/errors.js +0 -171
- package/transpiled/mongodb/lib/client-side-encryption/mongocryptd_manager.js +0 -98
- package/transpiled/mongodb/lib/client-side-encryption/providers/aws.js +0 -34
- package/transpiled/mongodb/lib/client-side-encryption/providers/azure.js +0 -186
- package/transpiled/mongodb/lib/client-side-encryption/providers/gcp.js +0 -29
- package/transpiled/mongodb/lib/client-side-encryption/providers/index.js +0 -58
- package/transpiled/mongodb/lib/client-side-encryption/state_machine.js +0 -505
- package/transpiled/mongodb/lib/cmap/auth/auth_provider.js +0 -63
- package/transpiled/mongodb/lib/cmap/auth/aws_temporary_credentials.js +0 -167
- package/transpiled/mongodb/lib/cmap/auth/gssapi.js +0 -207
- package/transpiled/mongodb/lib/cmap/auth/mongo_credentials.js +0 -193
- package/transpiled/mongodb/lib/cmap/auth/mongodb_aws.js +0 -181
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js +0 -101
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +0 -81
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -174
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/command_builders.js +0 -59
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +0 -58
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js +0 -138
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +0 -42
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_cache.js +0 -71
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +0 -34
- package/transpiled/mongodb/lib/cmap/auth/mongodb_oidc.js +0 -111
- package/transpiled/mongodb/lib/cmap/auth/plain.js +0 -43
- package/transpiled/mongodb/lib/cmap/auth/providers.js +0 -22
- package/transpiled/mongodb/lib/cmap/auth/scram.js +0 -318
- package/transpiled/mongodb/lib/cmap/auth/x509.js +0 -61
- package/transpiled/mongodb/lib/cmap/command_monitoring_events.js +0 -266
- package/transpiled/mongodb/lib/cmap/commands.js +0 -605
- package/transpiled/mongodb/lib/cmap/connect.js +0 -418
- package/transpiled/mongodb/lib/cmap/connection.js +0 -673
- package/transpiled/mongodb/lib/cmap/connection_pool.js +0 -688
- package/transpiled/mongodb/lib/cmap/connection_pool_events.js +0 -254
- package/transpiled/mongodb/lib/cmap/errors.js +0 -128
- package/transpiled/mongodb/lib/cmap/handshake/client_metadata.js +0 -278
- package/transpiled/mongodb/lib/cmap/metrics.js +0 -67
- package/transpiled/mongodb/lib/cmap/stream_description.js +0 -74
- package/transpiled/mongodb/lib/cmap/wire_protocol/compression.js +0 -196
- package/transpiled/mongodb/lib/cmap/wire_protocol/constants.js +0 -19
- package/transpiled/mongodb/lib/cmap/wire_protocol/on_data.js +0 -144
- package/transpiled/mongodb/lib/cmap/wire_protocol/on_demand/document.js +0 -278
- package/transpiled/mongodb/lib/cmap/wire_protocol/responses.js +0 -376
- package/transpiled/mongodb/lib/cmap/wire_protocol/shared.js +0 -49
- package/transpiled/mongodb/lib/collection.js +0 -852
- package/transpiled/mongodb/lib/connection_string.js +0 -1452
- package/transpiled/mongodb/lib/constants.js +0 -162
- package/transpiled/mongodb/lib/cursor/abstract_cursor.js +0 -1082
- package/transpiled/mongodb/lib/cursor/aggregation_cursor.js +0 -227
- package/transpiled/mongodb/lib/cursor/change_stream_cursor.js +0 -136
- package/transpiled/mongodb/lib/cursor/client_bulk_write_cursor.js +0 -69
- package/transpiled/mongodb/lib/cursor/find_cursor.js +0 -476
- package/transpiled/mongodb/lib/cursor/list_collections_cursor.js +0 -48
- package/transpiled/mongodb/lib/cursor/list_indexes_cursor.js +0 -46
- package/transpiled/mongodb/lib/cursor/list_search_indexes_cursor.js +0 -30
- package/transpiled/mongodb/lib/cursor/run_command_cursor.js +0 -125
- package/transpiled/mongodb/lib/db.js +0 -467
- package/transpiled/mongodb/lib/deps.js +0 -174
- package/transpiled/mongodb/lib/encrypter.js +0 -129
- package/transpiled/mongodb/lib/error.js +0 -1550
- package/transpiled/mongodb/lib/explain.js +0 -122
- package/transpiled/mongodb/lib/gridfs/download.js +0 -369
- package/transpiled/mongodb/lib/gridfs/index.js +0 -240
- package/transpiled/mongodb/lib/gridfs/upload.js +0 -446
- package/transpiled/mongodb/lib/index.js +0 -975
- package/transpiled/mongodb/lib/mongo_client.js +0 -626
- package/transpiled/mongodb/lib/mongo_client_auth_providers.js +0 -98
- package/transpiled/mongodb/lib/mongo_logger.js +0 -812
- package/transpiled/mongodb/lib/mongo_types.js +0 -71
- package/transpiled/mongodb/lib/operations/aggregate.js +0 -129
- package/transpiled/mongodb/lib/operations/bulk_write.js +0 -48
- package/transpiled/mongodb/lib/operations/client_bulk_write/client_bulk_write.js +0 -96
- package/transpiled/mongodb/lib/operations/client_bulk_write/command_builder.js +0 -409
- package/transpiled/mongodb/lib/operations/client_bulk_write/common.js +0 -5
- package/transpiled/mongodb/lib/operations/client_bulk_write/executor.js +0 -144
- package/transpiled/mongodb/lib/operations/client_bulk_write/results_merger.js +0 -228
- package/transpiled/mongodb/lib/operations/collections.js +0 -49
- package/transpiled/mongodb/lib/operations/command.js +0 -102
- package/transpiled/mongodb/lib/operations/count.js +0 -60
- package/transpiled/mongodb/lib/operations/create_collection.js +0 -109
- package/transpiled/mongodb/lib/operations/delete.js +0 -134
- package/transpiled/mongodb/lib/operations/distinct.js +0 -77
- package/transpiled/mongodb/lib/operations/drop.js +0 -102
- package/transpiled/mongodb/lib/operations/estimated_document_count.js +0 -47
- package/transpiled/mongodb/lib/operations/execute_operation.js +0 -251
- package/transpiled/mongodb/lib/operations/find.js +0 -197
- package/transpiled/mongodb/lib/operations/find_and_modify.js +0 -191
- package/transpiled/mongodb/lib/operations/get_more.js +0 -84
- package/transpiled/mongodb/lib/operations/indexes.js +0 -197
- package/transpiled/mongodb/lib/operations/insert.js +0 -138
- package/transpiled/mongodb/lib/operations/is_capped.js +0 -44
- package/transpiled/mongodb/lib/operations/kill_cursors.js +0 -58
- package/transpiled/mongodb/lib/operations/list_collections.js +0 -66
- package/transpiled/mongodb/lib/operations/list_databases.js +0 -56
- package/transpiled/mongodb/lib/operations/operation.js +0 -88
- package/transpiled/mongodb/lib/operations/options_operation.js +0 -44
- package/transpiled/mongodb/lib/operations/profiling_level.js +0 -42
- package/transpiled/mongodb/lib/operations/remove_user.js +0 -35
- package/transpiled/mongodb/lib/operations/rename.js +0 -48
- package/transpiled/mongodb/lib/operations/run_command.js +0 -64
- package/transpiled/mongodb/lib/operations/search_indexes/create.js +0 -41
- package/transpiled/mongodb/lib/operations/search_indexes/drop.js +0 -51
- package/transpiled/mongodb/lib/operations/search_indexes/update.js +0 -40
- package/transpiled/mongodb/lib/operations/set_profiling_level.js +0 -70
- package/transpiled/mongodb/lib/operations/stats.js +0 -39
- package/transpiled/mongodb/lib/operations/update.js +0 -218
- package/transpiled/mongodb/lib/operations/validate_collection.js +0 -49
- package/transpiled/mongodb/lib/read_concern.js +0 -92
- package/transpiled/mongodb/lib/read_preference.js +0 -215
- package/transpiled/mongodb/lib/resource_management.js +0 -74
- package/transpiled/mongodb/lib/sdam/common.js +0 -53
- package/transpiled/mongodb/lib/sdam/events.js +0 -177
- package/transpiled/mongodb/lib/sdam/monitor.js +0 -656
- package/transpiled/mongodb/lib/sdam/server.js +0 -463
- package/transpiled/mongodb/lib/sdam/server_description.js +0 -196
- package/transpiled/mongodb/lib/sdam/server_selection.js +0 -283
- package/transpiled/mongodb/lib/sdam/server_selection_events.js +0 -112
- package/transpiled/mongodb/lib/sdam/srv_polling.js +0 -139
- package/transpiled/mongodb/lib/sdam/topology.js +0 -833
- package/transpiled/mongodb/lib/sdam/topology_description.js +0 -447
- package/transpiled/mongodb/lib/sessions.js +0 -988
- package/transpiled/mongodb/lib/sort.js +0 -123
- package/transpiled/mongodb/lib/timeout.js +0 -349
- package/transpiled/mongodb/lib/transactions.js +0 -149
- package/transpiled/mongodb/lib/utils.js +0 -1502
- package/transpiled/mongodb/lib/write_concern.js +0 -115
|
@@ -7,30 +7,30 @@ exports.select = select;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Selects an option from a drop-down list using an option locator. This command works
|
|
21
|
-
* with multiple-choice lists as well.
|
|
22
|
-
* @description Option locator can be one of the following (No prefix is same as label matching):
|
|
23
|
-
* - `label=STRING` - Matches option based on the visible text.
|
|
24
|
-
* - `value=STRING` - Matches option based on its value.
|
|
25
|
-
* - `index=STRING` - Matches option based on its index. The index is 0-based.
|
|
26
|
-
* @function select
|
|
27
|
-
* @param {String} selectLocator - An element locator identifying a drop-down menu.
|
|
28
|
-
* @param {String} optionLocator - An option locator.
|
|
29
|
-
* @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
|
|
30
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
31
|
-
* web.init();//Opens browser session.
|
|
32
|
-
* web.open("www.yourwebsite.com");// Opens a website.
|
|
33
|
-
* web.select("id=Selection","label=United States");// Selects an option from a list.
|
|
19
|
+
/**
|
|
20
|
+
* @summary Selects an option from a drop-down list using an option locator. This command works
|
|
21
|
+
* with multiple-choice lists as well.
|
|
22
|
+
* @description Option locator can be one of the following (No prefix is same as label matching):
|
|
23
|
+
* - `label=STRING` - Matches option based on the visible text.
|
|
24
|
+
* - `value=STRING` - Matches option based on its value.
|
|
25
|
+
* - `index=STRING` - Matches option based on its index. The index is 0-based.
|
|
26
|
+
* @function select
|
|
27
|
+
* @param {String} selectLocator - An element locator identifying a drop-down menu.
|
|
28
|
+
* @param {String} optionLocator - An option locator.
|
|
29
|
+
* @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
|
|
30
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
31
|
+
* web.init();//Opens browser session.
|
|
32
|
+
* web.open("www.yourwebsite.com");// Opens a website.
|
|
33
|
+
* web.select("id=Selection","label=United States");// Selects an option from a list.
|
|
34
34
|
*/
|
|
35
35
|
async function select(selectLocator, optionLocator, timeout) {
|
|
36
36
|
this.helpers.assertArgumentNonEmptyString(optionLocator, 'optionLocator');
|
|
@@ -57,4 +57,4 @@ async function select(selectLocator, optionLocator, timeout) {
|
|
|
57
57
|
|
|
58
58
|
await this.checkWaitForAngular();
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2VsZWN0LmpzIl0sIm5hbWVzIjpbInNlbGVjdCIsInNlbGVjdExvY2F0b3IiLCJvcHRpb25Mb2NhdG9yIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nIiwiYXNzZXJ0QXJndW1lbnRUaW1lb3V0IiwiZWwiLCJnZXRFbGVtZW50IiwiaW5kZXhPZiIsInNlbGVjdEJ5QXR0cmlidXRlIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwic2VsZWN0QnlJbmRleCIsInNlbGVjdEJ5VmlzaWJsZVRleHQiLCJlIiwibWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJPeEVycm9yIiwiZXJySGVscGVyIiwiZXJyb3JDb2RlIiwiT1BUSU9OX05PVF9GT1VORCIsImNoZWNrV2FpdEZvckFuZ3VsYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxlQUFlQSxNQUFmLENBQXNCQyxhQUF0QixFQUFxQ0MsYUFBckMsRUFBb0RDLE9BQXBELEVBQTZEO0FBQ2hFLE9BQUtDLE9BQUwsQ0FBYUMsNEJBQWIsQ0FBMENILGFBQTFDLEVBQXlELGVBQXpEO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxNQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLSCxPQUFMLENBQWFJLFVBQWIsQ0FBd0JQLGFBQXhCLEVBQXVDLEtBQXZDLEVBQThDRSxPQUE5QyxDQUFmOztBQUVBLE1BQUk7QUFDQSxRQUFJRCxhQUFhLENBQUNPLE9BQWQsQ0FBc0IsUUFBdEIsTUFBb0MsQ0FBeEMsRUFBMkM7QUFDdkMsWUFBTUYsRUFBRSxDQUFDRyxpQkFBSCxDQUFxQixPQUFyQixFQUE4QlIsYUFBYSxDQUFDUyxTQUFkLENBQXdCLFNBQVNDLE1BQWpDLENBQTlCLENBQU47QUFDSCxLQUZELE1BRU8sSUFBSVYsYUFBYSxDQUFDTyxPQUFkLENBQXNCLFFBQXRCLE1BQW9DLENBQXhDLEVBQTJDO0FBQzlDLFlBQU1GLEVBQUUsQ0FBQ00sYUFBSCxDQUFpQlgsYUFBYSxDQUFDUyxTQUFkLENBQXdCLFNBQVNDLE1BQWpDLENBQWpCLENBQU47QUFDSCxLQUZNLE1BRUEsSUFBSVYsYUFBYSxDQUFDTyxPQUFkLENBQXNCLFFBQXRCLE1BQW9DLENBQXhDLEVBQTJDO0FBQzlDLFlBQU1GLEVBQUUsQ0FBQ08sbUJBQUgsQ0FBdUJaLGFBQWEsQ0FBQ1MsU0FBZCxDQUF3QixTQUFTQyxNQUFqQyxDQUF2QixDQUFOO0FBQ0gsS0FGTSxNQUVBO0FBQ0gsWUFBTUwsRUFBRSxDQUFDTyxtQkFBSCxDQUF1QlosYUFBdkIsQ0FBTjtBQUNIO0FBQ0osR0FWRCxDQVVFLE9BQU9hLENBQVAsRUFBVTtBQUNSLFFBQUlBLENBQUMsQ0FBQ0MsT0FBRixJQUFhRCxDQUFDLENBQUNDLE9BQUYsQ0FBVUMsVUFBVixDQUFxQixjQUFyQixDQUFqQixFQUF1RDtBQUNuRCxZQUFNLElBQUksS0FBS0MsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLGdCQUExQyxFQUE0RE4sQ0FBQyxDQUFDQyxPQUE5RCxDQUFOO0FBQ0g7O0FBQ0QsVUFBTUQsQ0FBTjtBQUNIOztBQUNELFFBQU0sS0FBS08sbUJBQUwsRUFBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgU2VsZWN0cyBhbiBvcHRpb24gZnJvbSBhIGRyb3AtZG93biBsaXN0IHVzaW5nIGFuIG9wdGlvbiBsb2NhdG9yLiBUaGlzIGNvbW1hbmQgd29ya3NcclxuICogICAgICAgICAgd2l0aCBtdWx0aXBsZS1jaG9pY2UgbGlzdHMgYXMgd2VsbC5cclxuICogQGRlc2NyaXB0aW9uIE9wdGlvbiBsb2NhdG9yIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyAoTm8gcHJlZml4IGlzIHNhbWUgYXMgbGFiZWwgbWF0Y2hpbmcpOiAgXHJcbiAqICAgICAgICAgICAgICAtIGBsYWJlbD1TVFJJTkdgIC0gTWF0Y2hlcyBvcHRpb24gYmFzZWQgb24gdGhlIHZpc2libGUgdGV4dC4gIFxyXG4gKiAgICAgICAgICAgICAgLSBgdmFsdWU9U1RSSU5HYCAtIE1hdGNoZXMgb3B0aW9uIGJhc2VkIG9uIGl0cyB2YWx1ZS4gIFxyXG4gKiAgICAgICAgICAgICAgLSBgaW5kZXg9U1RSSU5HYCAtIE1hdGNoZXMgb3B0aW9uIGJhc2VkIG9uIGl0cyBpbmRleC4gVGhlIGluZGV4IGlzIDAtYmFzZWQuXHJcbiAqIEBmdW5jdGlvbiBzZWxlY3RcclxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdExvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IgaWRlbnRpZnlpbmcgYSBkcm9wLWRvd24gbWVudS5cclxuICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbkxvY2F0b3IgLSBBbiBvcHRpb24gbG9jYXRvci5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi5zZWxlY3QoXCJpZD1TZWxlY3Rpb25cIixcImxhYmVsPVVuaXRlZCBTdGF0ZXNcIik7Ly8gU2VsZWN0cyBhbiBvcHRpb24gZnJvbSBhIGxpc3QuIFxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbGVjdChzZWxlY3RMb2NhdG9yLCBvcHRpb25Mb2NhdG9yLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyhvcHRpb25Mb2NhdG9yLCAnb3B0aW9uTG9jYXRvcicpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50VGltZW91dCh0aW1lb3V0LCAndGltZW91dCcpO1xyXG5cclxuICAgIHZhciBlbCA9IGF3YWl0IHRoaXMuaGVscGVycy5nZXRFbGVtZW50KHNlbGVjdExvY2F0b3IsIGZhbHNlLCB0aW1lb3V0KTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChvcHRpb25Mb2NhdG9yLmluZGV4T2YoJ3ZhbHVlPScpID09PSAwKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGVsLnNlbGVjdEJ5QXR0cmlidXRlKCd2YWx1ZScsIG9wdGlvbkxvY2F0b3Iuc3Vic3RyaW5nKCd2YWx1ZT0nLmxlbmd0aCkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9uTG9jYXRvci5pbmRleE9mKCdpbmRleD0nKSA9PT0gMCkge1xyXG4gICAgICAgICAgICBhd2FpdCBlbC5zZWxlY3RCeUluZGV4KG9wdGlvbkxvY2F0b3Iuc3Vic3RyaW5nKCdpbmRleD0nLmxlbmd0aCkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9uTG9jYXRvci5pbmRleE9mKCdsYWJlbD0nKSA9PT0gMCkge1xyXG4gICAgICAgICAgICBhd2FpdCBlbC5zZWxlY3RCeVZpc2libGVUZXh0KG9wdGlvbkxvY2F0b3Iuc3Vic3RyaW5nKCdsYWJlbD0nLmxlbmd0aCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGVsLnNlbGVjdEJ5VmlzaWJsZVRleHQob3B0aW9uTG9jYXRvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGlmIChlLm1lc3NhZ2UgJiYgZS5tZXNzYWdlLnN0YXJ0c1dpdGgoJ09wdGlvbiB3aXRoICcpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLk9QVElPTl9OT1RfRk9VTkQsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IGU7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNoZWNrV2FpdEZvckFuZ3VsYXIoKTtcclxufVxyXG4iXX0=
|
|
@@ -7,31 +7,31 @@ exports.selectFrame = selectFrame;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Selects a frame or an iframe within the current window.
|
|
21
|
-
* @description Available frame locators:
|
|
22
|
-
* - `'parent'` - Select parent frame.
|
|
23
|
-
* - `'top'` - Select top window.
|
|
24
|
-
* - `NUMBER` - Select frame by its 0-based index.
|
|
25
|
-
* - `LOCATOR` - Locator identifying the frame (relative to the top window).
|
|
26
|
-
* Multiple locators can be passed in order to switch between nested frames.
|
|
27
|
-
* @function selectFrame
|
|
28
|
-
* @param {...String|Number} frameLocator - A locator identifying the frame or iframe. Or a series
|
|
29
|
-
* of locators.
|
|
30
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
31
|
-
* web.init();//Opens browser session.
|
|
32
|
-
* web.open("www.yourwebsite.com");
|
|
33
|
-
* web.selectFrame("//iframe[@id='frame1']", "//iframe[@id='nested_frame']");
|
|
34
|
-
* web.click("id=SaveButton");//Clicks on element that exists in the second iframe
|
|
19
|
+
/**
|
|
20
|
+
* @summary Selects a frame or an iframe within the current window.
|
|
21
|
+
* @description Available frame locators:
|
|
22
|
+
* - `'parent'` - Select parent frame.
|
|
23
|
+
* - `'top'` - Select top window.
|
|
24
|
+
* - `NUMBER` - Select frame by its 0-based index.
|
|
25
|
+
* - `LOCATOR` - Locator identifying the frame (relative to the top window).
|
|
26
|
+
* Multiple locators can be passed in order to switch between nested frames.
|
|
27
|
+
* @function selectFrame
|
|
28
|
+
* @param {...String|Number} frameLocator - A locator identifying the frame or iframe. Or a series
|
|
29
|
+
* of locators.
|
|
30
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
31
|
+
* web.init();//Opens browser session.
|
|
32
|
+
* web.open("www.yourwebsite.com");
|
|
33
|
+
* web.selectFrame("//iframe[@id='frame1']", "//iframe[@id='nested_frame']");
|
|
34
|
+
* web.click("id=SaveButton");//Clicks on element that exists in the second iframe
|
|
35
35
|
*/
|
|
36
36
|
async function selectFrame(frameLocator) {
|
|
37
37
|
if (frameLocator === 'parent') {
|
|
@@ -54,4 +54,4 @@ async function selectFrame(frameLocator) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2VsZWN0RnJhbWUuanMiXSwibmFtZXMiOlsic2VsZWN0RnJhbWUiLCJmcmFtZUxvY2F0b3IiLCJkcml2ZXIiLCJzd2l0Y2hUb1BhcmVudEZyYW1lIiwic3dpdGNoVG9GcmFtZSIsImlzTmFOIiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsImxvY2F0b3IiLCJlbCIsImhlbHBlcnMiLCJnZXRFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxlQUFlQSxXQUFmLENBQTJCQyxZQUEzQixFQUF5QztBQUM1QyxNQUFJQSxZQUFZLEtBQUssUUFBckIsRUFBK0I7QUFBaUI7QUFDNUMsVUFBTSxLQUFLQyxNQUFMLENBQVlDLG1CQUFaLEVBQU47QUFDSCxHQUZELE1BRU8sSUFBSUYsWUFBWSxLQUFLLEtBQXJCLEVBQTRCO0FBQWE7QUFDNUMsVUFBTSxLQUFLQyxNQUFMLENBQVlFLGFBQVosQ0FBMEIsSUFBMUIsQ0FBTjtBQUNILEdBRk0sTUFFQSxJQUFJLENBQUNDLEtBQUssQ0FBQ0osWUFBRCxDQUFWLEVBQTBCO0FBQWU7QUFDNUMsVUFBTSxLQUFLQyxNQUFMLENBQVlFLGFBQVosQ0FBMEJILFlBQTFCLENBQU47QUFDSCxHQUZNLE1BRUE7QUFBeUM7QUFDNUMsVUFBTSxLQUFLQyxNQUFMLENBQVlFLGFBQVosQ0FBMEIsSUFBMUIsQ0FBTjs7QUFDQSxTQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBOUIsRUFBc0NGLENBQUMsRUFBdkMsRUFBMkM7QUFDdkMsVUFBSUcsT0FBTyxHQUFHRixTQUFTLENBQUNELENBQUQsQ0FBdkI7QUFDQSxVQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLQyxPQUFMLENBQWFDLFVBQWIsQ0FBd0JILE9BQXhCLENBQWY7QUFDQSxZQUFNLEtBQUtQLE1BQUwsQ0FBWUUsYUFBWixDQUEwQk0sRUFBMUIsQ0FBTjtBQUNIO0FBQ0o7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFNlbGVjdHMgYSBmcmFtZSBvciBhbiBpZnJhbWUgd2l0aGluIHRoZSBjdXJyZW50IHdpbmRvdy5cclxuICogQGRlc2NyaXB0aW9uIEF2YWlsYWJsZSBmcmFtZSBsb2NhdG9yczogIFxyXG4gKiAgICAgICAgICAgICAgLSBgJ3BhcmVudCdgIC0gU2VsZWN0IHBhcmVudCBmcmFtZS4gIFxyXG4gKiAgICAgICAgICAgICAgLSBgJ3RvcCdgIC0gU2VsZWN0IHRvcCB3aW5kb3cuICBcclxuICogICAgICAgICAgICAgIC0gYE5VTUJFUmAgLSBTZWxlY3QgZnJhbWUgYnkgaXRzIDAtYmFzZWQgaW5kZXguICBcclxuICogICAgICAgICAgICAgIC0gYExPQ0FUT1JgIC0gTG9jYXRvciBpZGVudGlmeWluZyB0aGUgZnJhbWUgKHJlbGF0aXZlIHRvIHRoZSB0b3Agd2luZG93KS5cclxuICogICAgICAgICAgICAgIE11bHRpcGxlIGxvY2F0b3JzIGNhbiBiZSBwYXNzZWQgaW4gb3JkZXIgdG8gc3dpdGNoIGJldHdlZW4gbmVzdGVkIGZyYW1lcy5cclxuICogQGZ1bmN0aW9uIHNlbGVjdEZyYW1lXHJcbiAqIEBwYXJhbSB7Li4uU3RyaW5nfE51bWJlcn0gZnJhbWVMb2NhdG9yIC0gQSBsb2NhdG9yIGlkZW50aWZ5aW5nIHRoZSBmcmFtZSBvciBpZnJhbWUuIE9yIGEgc2VyaWVzIFxyXG4gKiAgICAgICAgIG9mIGxvY2F0b3JzLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpO1xyXG4gKiB3ZWIuc2VsZWN0RnJhbWUoXCIvL2lmcmFtZVtAaWQ9J2ZyYW1lMSddXCIsIFwiLy9pZnJhbWVbQGlkPSduZXN0ZWRfZnJhbWUnXVwiKTtcclxuICogd2ViLmNsaWNrKFwiaWQ9U2F2ZUJ1dHRvblwiKTsvL0NsaWNrcyBvbiBlbGVtZW50IHRoYXQgZXhpc3RzIGluIHRoZSBzZWNvbmQgaWZyYW1lXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VsZWN0RnJhbWUoZnJhbWVMb2NhdG9yKSB7XHJcbiAgICBpZiAoZnJhbWVMb2NhdG9yID09PSAncGFyZW50JykgeyAgICAgICAgICAgICAgICAvLyBwYXJlbnRcclxuICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb1BhcmVudEZyYW1lKCk7XHJcbiAgICB9IGVsc2UgaWYgKGZyYW1lTG9jYXRvciA9PT0gJ3RvcCcpIHsgICAgICAgICAgICAvLyB0b3BcclxuICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb0ZyYW1lKG51bGwpO1xyXG4gICAgfSBlbHNlIGlmICghaXNOYU4oZnJhbWVMb2NhdG9yKSkgeyAgICAgICAgICAgICAgLy8gZnJhbWUgaW5kZXhcclxuICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb0ZyYW1lKGZyYW1lTG9jYXRvcik7XHJcbiAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcmFtZSBsb2NhdG9yKHMpXHJcbiAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9GcmFtZShudWxsKTtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgbG9jYXRvciA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgdmFyIGVsID0gYXdhaXQgdGhpcy5oZWxwZXJzLmdldEVsZW1lbnQobG9jYXRvcik7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvRnJhbWUoZWwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -7,34 +7,34 @@ exports.selectWindow = selectWindow;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Selects window. Once window has been selected, all commands go to that window.
|
|
21
|
-
* @description `windowLocator` can be:
|
|
22
|
-
* - `title=TITLE` Switch to the first window which matches the specified title. `TITLE` can be any of
|
|
23
|
-
* the supported string matching patterns (see top of the page). When using title locator, this command
|
|
24
|
-
* will wait for the window to appear first similarly to `waitForWindow` command.
|
|
25
|
-
* - `url=URL` Switch to the first window which matches the specified URL. `URL` can be any of
|
|
26
|
-
* the supported string matching patterns (see top of the page). When using url locator, this command
|
|
27
|
-
* will wait for the window to appear first similarly to `waitForWindow` command.
|
|
28
|
-
* - `windowHandle` Switch to a window using its unique handle.
|
|
29
|
-
* @function selectWindow
|
|
30
|
-
* @param {String=} windowLocator - Window locator.
|
|
31
|
-
* @param {Number=} timeout - Timeout in milliseconds when using 'title' window locating strategy.
|
|
32
|
-
* Default is 60 seconds.
|
|
33
|
-
* @return {String} windowHandle of the previously selected window.
|
|
34
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
35
|
-
* web.init();//Opens browser session.
|
|
36
|
-
* web.open("www.yourwebsite.com");// Opens a website.
|
|
37
|
-
* web.selectWindow("title=Website");// Selects and focus a window.
|
|
19
|
+
/**
|
|
20
|
+
* @summary Selects window. Once window has been selected, all commands go to that window.
|
|
21
|
+
* @description `windowLocator` can be:
|
|
22
|
+
* - `title=TITLE` Switch to the first window which matches the specified title. `TITLE` can be any of
|
|
23
|
+
* the supported string matching patterns (see top of the page). When using title locator, this command
|
|
24
|
+
* will wait for the window to appear first similarly to `waitForWindow` command.
|
|
25
|
+
* - `url=URL` Switch to the first window which matches the specified URL. `URL` can be any of
|
|
26
|
+
* the supported string matching patterns (see top of the page). When using url locator, this command
|
|
27
|
+
* will wait for the window to appear first similarly to `waitForWindow` command.
|
|
28
|
+
* - `windowHandle` Switch to a window using its unique handle.
|
|
29
|
+
* @function selectWindow
|
|
30
|
+
* @param {String=} windowLocator - Window locator.
|
|
31
|
+
* @param {Number=} timeout - Timeout in milliseconds when using 'title' window locating strategy.
|
|
32
|
+
* Default is 60 seconds.
|
|
33
|
+
* @return {String} windowHandle of the previously selected window.
|
|
34
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
35
|
+
* web.init();//Opens browser session.
|
|
36
|
+
* web.open("www.yourwebsite.com");// Opens a website.
|
|
37
|
+
* web.selectWindow("title=Website");// Selects and focus a window.
|
|
38
38
|
*/
|
|
39
39
|
async function selectWindow(windowLocator, timeout) {
|
|
40
40
|
this.helpers.assertArgument(windowLocator, 'windowLocator');
|
|
@@ -150,4 +150,4 @@ async function selectWindow(windowLocator, timeout) {
|
|
|
150
150
|
|
|
151
151
|
return currentHandle;
|
|
152
152
|
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2VsZWN0V2luZG93LmpzIl0sIm5hbWVzIjpbInNlbGVjdFdpbmRvdyIsIndpbmRvd0xvY2F0b3IiLCJ0aW1lb3V0IiwiaGVscGVycyIsImFzc2VydEFyZ3VtZW50IiwiY3VycmVudEhhbmRsZSIsImN1cnJlbnRIYW5kbGVUaXRsZSIsImN1cnJlbnRIYW5kbGVVcmwiLCJzd2l0aFRvQ3VycmVudEhhbmRsZUVycm9yTXNnIiwiZHJpdmVyIiwiZ2V0V2luZG93SGFuZGxlIiwiZXJyIiwid25kcyIsImdldFdpbmRvd0hhbmRsZXMiLCJzd2l0Y2hUb1dpbmRvdyIsImxlbmd0aCIsImdldFRpdGxlIiwiZ2V0VXJsIiwid2luZG93SGFuZGxlcyIsImluZGV4T2YiLCJwYXR0ZXJuIiwic3Vic3RyaW5nIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsIndhaXRGb3JUaW1lb3V0IiwiaSIsImhhbmRsZSIsInRpdGxlIiwibWF0Y2hQYXR0ZXJuIiwicGF1c2UiLCJPeEVycm9yIiwiZXJySGVscGVyIiwiZXJyb3JDb2RlIiwiV0lORE9XX05PVF9GT1VORCIsInVybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sZUFBZUEsWUFBZixDQUE0QkMsYUFBNUIsRUFBMkNDLE9BQTNDLEVBQW9EO0FBQ3ZELE9BQUtDLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsYUFBNUIsRUFBMkMsZUFBM0M7QUFDQSxNQUFJSSxhQUFKO0FBQ0EsTUFBSUMsa0JBQUo7QUFDQSxNQUFJQyxnQkFBSjtBQUNBLE1BQUlDLDRCQUE0QixHQUFHLDhDQUFuQyxDQUx1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LGdCQUExQyxFQUE0RDFCLDRCQUE1RCxDQUFOO0FBQ0g7O0FBQ0QsVUFBTSxJQUFJLEtBQUt1QixPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsZ0JBQTFDLEVBQTZELDBCQUF5QmpDLGFBQWMsRUFBcEcsQ0FBTjtBQUNILEdBL0JNLE1BK0JBO0FBQ0gsUUFBSTtBQUNBLFlBQU0sS0FBS1EsTUFBTCxDQUFZSyxjQUFaLENBQTJCYixhQUEzQixDQUFOO0FBQ0gsS0FGRCxDQUVFLE9BQU9VLEdBQVAsRUFBWTtBQUNWLFlBQU0sSUFBSSxLQUFLb0IsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLGdCQUExQyxFQUE0RDFCLDRCQUE1RCxDQUFOO0FBQ0g7QUFDSjs7QUFFRCxTQUFPSCxhQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICovXG5cbi8qKlxuICogQHN1bW1hcnkgU2VsZWN0cyB3aW5kb3cuIE9uY2Ugd2luZG93IGhhcyBiZWVuIHNlbGVjdGVkLCBhbGwgY29tbWFuZHMgZ28gdG8gdGhhdCB3aW5kb3cuXG4gKiBAZGVzY3JpcHRpb24gYHdpbmRvd0xvY2F0b3JgIGNhbiBiZTogIFxuICogLSBgdGl0bGU9VElUTEVgIFN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdoaWNoIG1hdGNoZXMgdGhlIHNwZWNpZmllZCB0aXRsZS4gYFRJVExFYCBjYW4gYmUgYW55IG9mXG4gKiB0aGUgc3VwcG9ydGVkIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyAoc2VlIHRvcCBvZiB0aGUgcGFnZSkuIFdoZW4gdXNpbmcgdGl0bGUgbG9jYXRvciwgdGhpcyBjb21tYW5kXG4gKiB3aWxsIHdhaXQgZm9yIHRoZSB3aW5kb3cgdG8gYXBwZWFyIGZpcnN0IHNpbWlsYXJseSB0byBgd2FpdEZvcldpbmRvd2AgY29tbWFuZC4gIFxuICogLSBgdXJsPVVSTGAgU3dpdGNoIHRvIHRoZSBmaXJzdCB3aW5kb3cgd2hpY2ggbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIFVSTC4gYFVSTGAgY2FuIGJlIGFueSBvZlxuICogdGhlIHN1cHBvcnRlZCBzdHJpbmcgbWF0Y2hpbmcgcGF0dGVybnMgKHNlZSB0b3Agb2YgdGhlIHBhZ2UpLiBXaGVuIHVzaW5nIHVybCBsb2NhdG9yLCB0aGlzIGNvbW1hbmRcbiAqIHdpbGwgd2FpdCBmb3IgdGhlIHdpbmRvdyB0byBhcHBlYXIgZmlyc3Qgc2ltaWxhcmx5IHRvIGB3YWl0Rm9yV2luZG93YCBjb21tYW5kLiAgXG4gKiAtIGB3aW5kb3dIYW5kbGVgIFN3aXRjaCB0byBhIHdpbmRvdyB1c2luZyBpdHMgdW5pcXVlIGhhbmRsZS5cbiAqIEBmdW5jdGlvbiBzZWxlY3RXaW5kb3dcbiAqIEBwYXJhbSB7U3RyaW5nPX0gd2luZG93TG9jYXRvciAtIFdpbmRvdyBsb2NhdG9yLlxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMgd2hlbiB1c2luZyAndGl0bGUnIHdpbmRvdyBsb2NhdGluZyBzdHJhdGVneS4gXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxuICogQHJldHVybiB7U3RyaW5nfSB3aW5kb3dIYW5kbGUgb2YgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2luZG93LlxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XG4gKiB3ZWIuaW5pdCgpOy8vT3BlbnMgYnJvd3NlciBzZXNzaW9uLlxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpOy8vIE9wZW5zIGEgd2Vic2l0ZS5cbiAqIHdlYi5zZWxlY3RXaW5kb3coXCJ0aXRsZT1XZWJzaXRlXCIpOy8vIFNlbGVjdHMgYW5kIGZvY3VzIGEgd2luZG93LiBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbGVjdFdpbmRvdyh3aW5kb3dMb2NhdG9yLCB0aW1lb3V0KSB7XG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50KHdpbmRvd0xvY2F0b3IsICd3aW5kb3dMb2NhdG9yJyk7XG4gICAgdmFyIGN1cnJlbnRIYW5kbGU7XG4gICAgdmFyIGN1cnJlbnRIYW5kbGVUaXRsZTtcbiAgICB2YXIgY3VycmVudEhhbmRsZVVybDtcbiAgICB2YXIgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyA9ICdVbmFibGUgdG8gc3dpdGNoIHRvIHByZXZpb3VzIHNlbGVjdGVkIHdpbmRvdyc7XG5cbiAgICAvLyBnZXRXaW5kb3dIYW5kbGUoKSBjb3VsZCBwb3NzaWJseSBmYWlsIGlmIHRoZXJlIGlzIG5vIGFjdGl2ZSB3aW5kb3csXG4gICAgLy8gc28gd2Ugc2VsZWN0IHRoZSBsYXN0IG9wZW5lZCBvbmUgaW4gc3VjaCBjYXNlXG4gICAgdHJ5IHtcbiAgICAgICAgY3VycmVudEhhbmRsZSA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZSgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB2YXIgd25kcyA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZXMoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3cod25kc1t3bmRzLmxlbmd0aCAtIDFdKTtcbiAgICAgICAgY3VycmVudEhhbmRsZSA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZSgpO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50SGFuZGxlKSB7XG4gICAgICAgIGN1cnJlbnRIYW5kbGVUaXRsZSA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFRpdGxlKCk7XG4gICAgICAgIGN1cnJlbnRIYW5kbGVVcmwgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRVcmwoKTtcbiAgICB9XG5cbiAgICB2YXIgd2luZG93SGFuZGxlcztcbiAgICBpZiAod2luZG93TG9jYXRvci5pbmRleE9mKCd0aXRsZT0nKSA9PT0gMCkge1xuICAgICAgICBsZXQgcGF0dGVybiA9IHdpbmRvd0xvY2F0b3Iuc3Vic3RyaW5nKCd0aXRsZT0nLmxlbmd0aCk7XG4gICAgICAgIGxldCBzdGFydCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgICAgIHRpbWVvdXQgPSAhdGltZW91dCA/IHRoaXMud2FpdEZvclRpbWVvdXQgOiB0aW1lb3V0O1xuICAgICAgICB3aGlsZSAoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAtIHN0YXJ0IDwgdGltZW91dCkge1xuICAgICAgICAgICAgd2luZG93SGFuZGxlcyA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZXMoKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd2luZG93SGFuZGxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBoYW5kbGUgPSB3aW5kb3dIYW5kbGVzW2ldO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvV2luZG93KGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IC8vIGluIGNhc2Ugd2luZG93IHdhcyBjbG9zZWRcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFRpdGxlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVscGVycy5tYXRjaFBhdHRlcm4odGl0bGUsIHBhdHRlcm4pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SGFuZGxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGF1c2UoMTAwMCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gaWYgd2luZG93IG5vdCBmb3VuZCAtIHN3aXRjaCB0byBvcmlnaW5hbCBvbmUgYW5kIHRocm93XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb1dpbmRvdyhjdXJyZW50SGFuZGxlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7IC8vIGluIGNhc2Ugd2luZG93IHdhcyBjbG9zZWRcblxuICAgICAgICAgICAgaWYgKGN1cnJlbnRIYW5kbGVUaXRsZSkge1xuICAgICAgICAgICAgICAgIHN3aXRoVG9DdXJyZW50SGFuZGxlRXJyb3JNc2cgKz0gYDogJHtjdXJyZW50SGFuZGxlVGl0bGV9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgYFVuYWJsZSB0byBmaW5kIHdpbmRvdzogJHt3aW5kb3dMb2NhdG9yfWApO1xuICAgIH0gZWxzZSBpZiAod2luZG93TG9jYXRvci5pbmRleE9mKCd1cmw9JykgPT09IDApIHtcbiAgICAgICAgbGV0IHBhdHRlcm4gPSB3aW5kb3dMb2NhdG9yLnN1YnN0cmluZygndXJsPScubGVuZ3RoKTtcbiAgICAgICAgbGV0IHN0YXJ0ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcbiAgICAgICAgdGltZW91dCA9ICF0aW1lb3V0ID8gdGhpcy53YWl0Rm9yVGltZW91dCA6IHRpbWVvdXQ7XG4gICAgICAgIHdoaWxlICgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC0gc3RhcnQgPCB0aW1lb3V0KSB7XG4gICAgICAgICAgICB3aW5kb3dIYW5kbGVzID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0V2luZG93SGFuZGxlcygpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aW5kb3dIYW5kbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHdpbmRvd0hhbmRsZXNbaV07XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3coaGFuZGxlKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsgLy8gaW4gY2FzZSB3aW5kb3cgd2FzIGNsb3NlZFxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFVybCgpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHVybCwgcGF0dGVybikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIYW5kbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wYXVzZSgxMDAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBpZiB3aW5kb3cgbm90IGZvdW5kIC0gc3dpdGNoIHRvIG9yaWdpbmFsIG9uZSBhbmQgdGhyb3dcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvV2luZG93KGN1cnJlbnRIYW5kbGUpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SGFuZGxlVXJsKSB7XG4gICAgICAgICAgICAgICAgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyArPSBgOiAke2N1cnJlbnRIYW5kbGVVcmx9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLldJTkRPV19OT1RfRk9VTkQsIHN3aXRoVG9DdXJyZW50SGFuZGxlRXJyb3JNc2cpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLldJTkRPV19OT1RfRk9VTkQsIGBVbmFibGUgdG8gZmluZCB3aW5kb3c6ICR7d2luZG93TG9jYXRvcn1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3cod2luZG93TG9jYXRvcik7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudEhhbmRsZTtcbn0iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2VsZWN0V2luZG93LmpzIl0sIm5hbWVzIjpbInNlbGVjdFdpbmRvdyIsIndpbmRvd0xvY2F0b3IiLCJ0aW1lb3V0IiwiaGVscGVycyIsImFzc2VydEFyZ3VtZW50IiwiY3VycmVudEhhbmRsZSIsImN1cnJlbnRIYW5kbGVUaXRsZSIsImN1cnJlbnRIYW5kbGVVcmwiLCJzd2l0aFRvQ3VycmVudEhhbmRsZUVycm9yTXNnIiwiZHJpdmVyIiwiZ2V0V2luZG93SGFuZGxlIiwiZXJyIiwid25kcyIsImdldFdpbmRvd0hhbmRsZXMiLCJzd2l0Y2hUb1dpbmRvdyIsImxlbmd0aCIsImdldFRpdGxlIiwiZ2V0VXJsIiwid2luZG93SGFuZGxlcyIsImluZGV4T2YiLCJwYXR0ZXJuIiwic3Vic3RyaW5nIiwic3RhcnQiLCJEYXRlIiwiZ2V0VGltZSIsIndhaXRGb3JUaW1lb3V0IiwiaSIsImhhbmRsZSIsInRpdGxlIiwibWF0Y2hQYXR0ZXJuIiwicGF1c2UiLCJPeEVycm9yIiwiZXJySGVscGVyIiwiZXJyb3JDb2RlIiwiV0lORE9XX05PVF9GT1VORCIsInVybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sZUFBZUEsWUFBZixDQUE0QkMsYUFBNUIsRUFBMkNDLE9BQTNDLEVBQW9EO0FBQ3ZELE9BQUtDLE9BQUwsQ0FBYUMsY0FBYixDQUE0QkgsYUFBNUIsRUFBMkMsZUFBM0M7QUFDQSxNQUFJSSxhQUFKO0FBQ0EsTUFBSUMsa0JBQUo7QUFDQSxNQUFJQyxnQkFBSjtBQUNBLE1BQUlDLDRCQUE0QixHQUFHLDhDQUFuQyxDQUx1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LGdCQUExQyxFQUE0RDFCLDRCQUE1RCxDQUFOO0FBQ0g7O0FBQ0QsVUFBTSxJQUFJLEtBQUt1QixPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsZ0JBQTFDLEVBQTZELDBCQUF5QmpDLGFBQWMsRUFBcEcsQ0FBTjtBQUNILEdBL0JNLE1BK0JBO0FBQ0gsUUFBSTtBQUNBLFlBQU0sS0FBS1EsTUFBTCxDQUFZSyxjQUFaLENBQTJCYixhQUEzQixDQUFOO0FBQ0gsS0FGRCxDQUVFLE9BQU9VLEdBQVAsRUFBWTtBQUNWLFlBQU0sSUFBSSxLQUFLb0IsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLGdCQUExQyxFQUE0RDFCLDRCQUE1RCxDQUFOO0FBQ0g7QUFDSjs7QUFFRCxTQUFPSCxhQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBTZWxlY3RzIHdpbmRvdy4gT25jZSB3aW5kb3cgaGFzIGJlZW4gc2VsZWN0ZWQsIGFsbCBjb21tYW5kcyBnbyB0byB0aGF0IHdpbmRvdy5cclxuICogQGRlc2NyaXB0aW9uIGB3aW5kb3dMb2NhdG9yYCBjYW4gYmU6ICBcclxuICogLSBgdGl0bGU9VElUTEVgIFN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdoaWNoIG1hdGNoZXMgdGhlIHNwZWNpZmllZCB0aXRsZS4gYFRJVExFYCBjYW4gYmUgYW55IG9mXHJcbiAqIHRoZSBzdXBwb3J0ZWQgc3RyaW5nIG1hdGNoaW5nIHBhdHRlcm5zIChzZWUgdG9wIG9mIHRoZSBwYWdlKS4gV2hlbiB1c2luZyB0aXRsZSBsb2NhdG9yLCB0aGlzIGNvbW1hbmRcclxuICogd2lsbCB3YWl0IGZvciB0aGUgd2luZG93IHRvIGFwcGVhciBmaXJzdCBzaW1pbGFybHkgdG8gYHdhaXRGb3JXaW5kb3dgIGNvbW1hbmQuICBcclxuICogLSBgdXJsPVVSTGAgU3dpdGNoIHRvIHRoZSBmaXJzdCB3aW5kb3cgd2hpY2ggbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIFVSTC4gYFVSTGAgY2FuIGJlIGFueSBvZlxyXG4gKiB0aGUgc3VwcG9ydGVkIHN0cmluZyBtYXRjaGluZyBwYXR0ZXJucyAoc2VlIHRvcCBvZiB0aGUgcGFnZSkuIFdoZW4gdXNpbmcgdXJsIGxvY2F0b3IsIHRoaXMgY29tbWFuZFxyXG4gKiB3aWxsIHdhaXQgZm9yIHRoZSB3aW5kb3cgdG8gYXBwZWFyIGZpcnN0IHNpbWlsYXJseSB0byBgd2FpdEZvcldpbmRvd2AgY29tbWFuZC4gIFxyXG4gKiAtIGB3aW5kb3dIYW5kbGVgIFN3aXRjaCB0byBhIHdpbmRvdyB1c2luZyBpdHMgdW5pcXVlIGhhbmRsZS5cclxuICogQGZ1bmN0aW9uIHNlbGVjdFdpbmRvd1xyXG4gKiBAcGFyYW0ge1N0cmluZz19IHdpbmRvd0xvY2F0b3IgLSBXaW5kb3cgbG9jYXRvci5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMgd2hlbiB1c2luZyAndGl0bGUnIHdpbmRvdyBsb2NhdGluZyBzdHJhdGVneS4gXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEByZXR1cm4ge1N0cmluZ30gd2luZG93SGFuZGxlIG9mIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHdpbmRvdy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi5zZWxlY3RXaW5kb3coXCJ0aXRsZT1XZWJzaXRlXCIpOy8vIFNlbGVjdHMgYW5kIGZvY3VzIGEgd2luZG93LiBcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWxlY3RXaW5kb3cod2luZG93TG9jYXRvciwgdGltZW91dCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50KHdpbmRvd0xvY2F0b3IsICd3aW5kb3dMb2NhdG9yJyk7XHJcbiAgICB2YXIgY3VycmVudEhhbmRsZTtcclxuICAgIHZhciBjdXJyZW50SGFuZGxlVGl0bGU7XHJcbiAgICB2YXIgY3VycmVudEhhbmRsZVVybDtcclxuICAgIHZhciBzd2l0aFRvQ3VycmVudEhhbmRsZUVycm9yTXNnID0gJ1VuYWJsZSB0byBzd2l0Y2ggdG8gcHJldmlvdXMgc2VsZWN0ZWQgd2luZG93JztcclxuXHJcbiAgICAvLyBnZXRXaW5kb3dIYW5kbGUoKSBjb3VsZCBwb3NzaWJseSBmYWlsIGlmIHRoZXJlIGlzIG5vIGFjdGl2ZSB3aW5kb3csXHJcbiAgICAvLyBzbyB3ZSBzZWxlY3QgdGhlIGxhc3Qgb3BlbmVkIG9uZSBpbiBzdWNoIGNhc2VcclxuICAgIHRyeSB7XHJcbiAgICAgICAgY3VycmVudEhhbmRsZSA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZSgpO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgdmFyIHduZHMgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRXaW5kb3dIYW5kbGVzKCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3cod25kc1t3bmRzLmxlbmd0aCAtIDFdKTtcclxuICAgICAgICBjdXJyZW50SGFuZGxlID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0V2luZG93SGFuZGxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGN1cnJlbnRIYW5kbGUpIHtcclxuICAgICAgICBjdXJyZW50SGFuZGxlVGl0bGUgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRUaXRsZSgpO1xyXG4gICAgICAgIGN1cnJlbnRIYW5kbGVVcmwgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRVcmwoKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgd2luZG93SGFuZGxlcztcclxuICAgIGlmICh3aW5kb3dMb2NhdG9yLmluZGV4T2YoJ3RpdGxlPScpID09PSAwKSB7XHJcbiAgICAgICAgbGV0IHBhdHRlcm4gPSB3aW5kb3dMb2NhdG9yLnN1YnN0cmluZygndGl0bGU9Jy5sZW5ndGgpO1xyXG4gICAgICAgIGxldCBzdGFydCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgdGltZW91dCA9ICF0aW1lb3V0ID8gdGhpcy53YWl0Rm9yVGltZW91dCA6IHRpbWVvdXQ7XHJcbiAgICAgICAgd2hpbGUgKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLSBzdGFydCA8IHRpbWVvdXQpIHtcclxuICAgICAgICAgICAgd2luZG93SGFuZGxlcyA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldFdpbmRvd0hhbmRsZXMoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aW5kb3dIYW5kbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaGFuZGxlID0gd2luZG93SGFuZGxlc1tpXTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoVG9XaW5kb3coaGFuZGxlKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgeyAvLyBpbiBjYXNlIHdpbmRvdyB3YXMgY2xvc2VkXHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRUaXRsZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVscGVycy5tYXRjaFBhdHRlcm4odGl0bGUsIHBhdHRlcm4pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRIYW5kbGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5wYXVzZSgxMDAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGlmIHdpbmRvdyBub3QgZm91bmQgLSBzd2l0Y2ggdG8gb3JpZ2luYWwgb25lIGFuZCB0aHJvd1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb1dpbmRvdyhjdXJyZW50SGFuZGxlKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHsgLy8gaW4gY2FzZSB3aW5kb3cgd2FzIGNsb3NlZFxyXG5cclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRIYW5kbGVUaXRsZSkge1xyXG4gICAgICAgICAgICAgICAgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyArPSBgOiAke2N1cnJlbnRIYW5kbGVUaXRsZX1gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgdGhpcy5PeEVycm9yKHRoaXMuZXJySGVscGVyLmVycm9yQ29kZS5XSU5ET1dfTk9UX0ZPVU5ELCBzd2l0aFRvQ3VycmVudEhhbmRsZUVycm9yTXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgYFVuYWJsZSB0byBmaW5kIHdpbmRvdzogJHt3aW5kb3dMb2NhdG9yfWApO1xyXG4gICAgfSBlbHNlIGlmICh3aW5kb3dMb2NhdG9yLmluZGV4T2YoJ3VybD0nKSA9PT0gMCkge1xyXG4gICAgICAgIGxldCBwYXR0ZXJuID0gd2luZG93TG9jYXRvci5zdWJzdHJpbmcoJ3VybD0nLmxlbmd0aCk7XHJcbiAgICAgICAgbGV0IHN0YXJ0ID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcclxuICAgICAgICB0aW1lb3V0ID0gIXRpbWVvdXQgPyB0aGlzLndhaXRGb3JUaW1lb3V0IDogdGltZW91dDtcclxuICAgICAgICB3aGlsZSAoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAtIHN0YXJ0IDwgdGltZW91dCkge1xyXG4gICAgICAgICAgICB3aW5kb3dIYW5kbGVzID0gYXdhaXQgdGhpcy5kcml2ZXIuZ2V0V2luZG93SGFuZGxlcygpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdpbmRvd0hhbmRsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBoYW5kbGUgPSB3aW5kb3dIYW5kbGVzW2ldO1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb1dpbmRvdyhoYW5kbGUpO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IC8vIGluIGNhc2Ugd2luZG93IHdhcyBjbG9zZWRcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRVcmwoKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlbHBlcnMubWF0Y2hQYXR0ZXJuKHVybCwgcGF0dGVybikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudEhhbmRsZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnBhdXNlKDEwMDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gaWYgd2luZG93IG5vdCBmb3VuZCAtIHN3aXRjaCB0byBvcmlnaW5hbCBvbmUgYW5kIHRocm93XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaFRvV2luZG93KGN1cnJlbnRIYW5kbGUpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudEhhbmRsZVVybCkge1xyXG4gICAgICAgICAgICAgICAgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyArPSBgOiAke2N1cnJlbnRIYW5kbGVVcmx9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgdGhpcy5PeEVycm9yKHRoaXMuZXJySGVscGVyLmVycm9yQ29kZS5XSU5ET1dfTk9UX0ZPVU5ELCBzd2l0aFRvQ3VycmVudEhhbmRsZUVycm9yTXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgYFVuYWJsZSB0byBmaW5kIHdpbmRvdzogJHt3aW5kb3dMb2NhdG9yfWApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5zd2l0Y2hUb1dpbmRvdyh3aW5kb3dMb2NhdG9yKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IHRoaXMuT3hFcnJvcih0aGlzLmVyckhlbHBlci5lcnJvckNvZGUuV0lORE9XX05PVF9GT1VORCwgc3dpdGhUb0N1cnJlbnRIYW5kbGVFcnJvck1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjdXJyZW50SGFuZGxlO1xyXG59Il19
|
|
@@ -7,29 +7,29 @@ exports.sendKeys = sendKeys;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Send a sequence of keyboard strokes to the active window or element.
|
|
21
|
-
* @description Refer to [Key Codes](https://w3c.github.io/webdriver/#keyboard-actions)
|
|
22
|
-
* for the list of supported raw keyboard key codes.
|
|
23
|
-
* @function sendKeys
|
|
24
|
-
* @param {(String|String[])} value - Sequence of key strokes to send. Can be either a string or an
|
|
25
|
-
* array of strings for sending raw key codes.
|
|
26
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
27
|
-
* web.init();//Opens browser session.
|
|
28
|
-
* web.open("www.yourwebsite.com");// Opens a website.
|
|
29
|
-
* web.sendKeys("Hello World");
|
|
30
|
-
* web.sendKeys(["Backspace", "Backspace", "Enter"]); // send two Backspace key codes and Enter.
|
|
31
|
-
* // Unicode representation can be used directly as well:
|
|
32
|
-
* web.sendKeys("Hello World\uE003\uE003\uE007");
|
|
19
|
+
/**
|
|
20
|
+
* @summary Send a sequence of keyboard strokes to the active window or element.
|
|
21
|
+
* @description Refer to [Key Codes](https://w3c.github.io/webdriver/#keyboard-actions)
|
|
22
|
+
* for the list of supported raw keyboard key codes.
|
|
23
|
+
* @function sendKeys
|
|
24
|
+
* @param {(String|String[])} value - Sequence of key strokes to send. Can be either a string or an
|
|
25
|
+
* array of strings for sending raw key codes.
|
|
26
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
27
|
+
* web.init();//Opens browser session.
|
|
28
|
+
* web.open("www.yourwebsite.com");// Opens a website.
|
|
29
|
+
* web.sendKeys("Hello World");
|
|
30
|
+
* web.sendKeys(["Backspace", "Backspace", "Enter"]); // send two Backspace key codes and Enter.
|
|
31
|
+
* // Unicode representation can be used directly as well:
|
|
32
|
+
* web.sendKeys("Hello World\uE003\uE003\uE007");
|
|
33
33
|
*/
|
|
34
34
|
async function sendKeys(value) {
|
|
35
35
|
this.helpers.assertArgument(value);
|
|
@@ -58,4 +58,4 @@ async function sendKeys(value) {
|
|
|
58
58
|
|
|
59
59
|
await this.checkWaitForAngular();
|
|
60
60
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2VuZEtleXMuanMiXSwibmFtZXMiOlsic2VuZEtleXMiLCJ2YWx1ZSIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsInZhbEFycmF5IiwiQXJyYXkiLCJpc0FycmF5IiwidmFsIiwicHVzaCIsImRyaXZlciIsImtleXMiLCJlIiwibG9nZ2VyIiwid2FybiIsImNoZWNrV2FpdEZvckFuZ3VsYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sZUFBZUEsUUFBZixDQUF3QkMsS0FBeEIsRUFBK0I7QUFDbEMsT0FBS0MsT0FBTCxDQUFhQyxjQUFiLENBQTRCRixLQUE1QjtBQUVBLE1BQUlHLFFBQVEsR0FBRyxFQUFmLENBSGtDLENBSWxDOztBQUNBLE1BQUk7QUFDQSxRQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0wsS0FBZCxDQUFKLEVBQTBCO0FBQWM7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFLLElBQUlNLEdBQVQsSUFBZ0JOLEtBQWhCLEVBQXVCO0FBQ25CRyxRQUFBQSxRQUFRLENBQUNJLElBQVQsQ0FBY0QsR0FBZDtBQUNIOztBQUNELFlBQU0sS0FBS0UsTUFBTCxDQUFZQyxJQUFaLENBQWlCTixRQUFqQixDQUFOO0FBQ0E7QUFDSCxLQVZELE1BVU87QUFBaUM7QUFDcEMsWUFBTSxLQUFLSyxNQUFMLENBQVlDLElBQVosQ0FBaUJULEtBQWpCLENBQU47QUFDSDtBQUNKLEdBZEQsQ0FjRSxPQUFPVSxDQUFQLEVBQVU7QUFDUixTQUFLQyxNQUFMLENBQVlDLElBQVosQ0FBaUIsb0JBQWpCLEVBQXVDRixDQUF2QztBQUNIOztBQUNELFFBQU0sS0FBS0csbUJBQUwsRUFBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgU2VuZCBhIHNlcXVlbmNlIG9mIGtleWJvYXJkIHN0cm9rZXMgdG8gdGhlIGFjdGl2ZSB3aW5kb3cgb3IgZWxlbWVudC5cclxuICogQGRlc2NyaXB0aW9uIFJlZmVyIHRvIFtLZXkgQ29kZXNdKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvI2tleWJvYXJkLWFjdGlvbnMpXHJcbiAqICAgICAgICAgICAgICBmb3IgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIHJhdyBrZXlib2FyZCBrZXkgY29kZXMuXHJcbiAqIEBmdW5jdGlvbiBzZW5kS2V5c1xyXG4gKiBAcGFyYW0geyhTdHJpbmd8U3RyaW5nW10pfSB2YWx1ZSAtIFNlcXVlbmNlIG9mIGtleSBzdHJva2VzIHRvIHNlbmQuIENhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5IG9mIHN0cmluZ3MgZm9yIHNlbmRpbmcgcmF3IGtleSBjb2Rlcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi5zZW5kS2V5cyhcIkhlbGxvIFdvcmxkXCIpO1xyXG4gKiB3ZWIuc2VuZEtleXMoW1wiQmFja3NwYWNlXCIsIFwiQmFja3NwYWNlXCIsIFwiRW50ZXJcIl0pOyAvLyBzZW5kIHR3byBCYWNrc3BhY2Uga2V5IGNvZGVzIGFuZCBFbnRlci5cclxuICogLy8gVW5pY29kZSByZXByZXNlbnRhdGlvbiBjYW4gYmUgdXNlZCBkaXJlY3RseSBhcyB3ZWxsOlxyXG4gKiB3ZWIuc2VuZEtleXMoXCJIZWxsbyBXb3JsZFxcdUUwMDNcXHVFMDAzXFx1RTAwN1wiKTtcclxuKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRLZXlzKHZhbHVlKSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnQodmFsdWUpO1xyXG5cclxuICAgIHZhciB2YWxBcnJheSA9IFtdO1xyXG4gICAgLy8gdHJ5LWNhdGNoIGlzIGZvciBPSS0xMDQ5XHJcbiAgICB0cnkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgeyAgICAgICAgICAgICAvLyBhcnJheVxyXG4gICAgICAgICAgICAvLyBgaW5zdGFuY2VvZiBBcnJheWAgYmVoYXZlcyBzdHJhbmdlIHdoZW4gZXhlY3V0ZWQgdGhyb3VnaCB2bS5ydW5Jbk5ld0NvbnRleHQsXHJcbiAgICAgICAgICAgIC8vIGl0IHJldHVybnMgZmFsc2UgZm9yIGFycmF5cyBhbmQgYGRyaXZlci5rZXlzKClgIHRlc3RzIGZvciBhcnJheXMgdXNpbmcgYGluc3RhY2VvZiBBcnJheWBcclxuICAgICAgICAgICAgLy8gdGh1cyB3ZSByZWNyZWF0ZSB0aGUgYXJyYXkuXHJcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mZWxpeGdlL25vZGUtc2FuZGJveGVkLW1vZHVsZS9pc3N1ZXMvMTMjaXNzdWVjb21tZW50LTI5OTU4NTIxM1xyXG4gICAgICAgICAgICBmb3IgKHZhciB2YWwgb2YgdmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHZhbEFycmF5LnB1c2godmFsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRyaXZlci5rZXlzKHZhbEFycmF5KTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJpbmdcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIua2V5cyh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ3dlYi5zZW5kS2V5cyBlcnJvcicsIGUpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5jaGVja1dhaXRGb3JBbmd1bGFyKCk7XHJcbn1cclxuIl19
|
|
@@ -7,27 +7,27 @@ exports.setAutoWaitForAngular = setAutoWaitForAngular;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Wait for Angular based app will be loaded
|
|
21
|
-
* @function setAutoWaitForAngular
|
|
22
|
-
* @param {Boolean} autoWaitForAngular - true to enable auto-wait. false to disable.
|
|
23
|
-
* @param {String=} rootSelector - Selector for root element, needed only for AngularJS (v1).
|
|
24
|
-
* In Angular (v2) first available root node will be selected automatically.
|
|
25
|
-
* @param {Boolean=} softWait - If true then do not produce error if stability cannot be attained. Default is false.
|
|
26
|
-
* @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
|
|
27
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
28
|
-
* web.init();
|
|
29
|
-
* web.open("www.yourwebsite.com");
|
|
30
|
-
* web.setAutoWaitForAngular(true);
|
|
19
|
+
/**
|
|
20
|
+
* @summary Wait for Angular based app will be loaded
|
|
21
|
+
* @function setAutoWaitForAngular
|
|
22
|
+
* @param {Boolean} autoWaitForAngular - true to enable auto-wait. false to disable.
|
|
23
|
+
* @param {String=} rootSelector - Selector for root element, needed only for AngularJS (v1).
|
|
24
|
+
* In Angular (v2) first available root node will be selected automatically.
|
|
25
|
+
* @param {Boolean=} softWait - If true then do not produce error if stability cannot be attained. Default is false.
|
|
26
|
+
* @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
|
|
27
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
28
|
+
* web.init();
|
|
29
|
+
* web.open("www.yourwebsite.com");
|
|
30
|
+
* web.setAutoWaitForAngular(true);
|
|
31
31
|
*/
|
|
32
32
|
function setAutoWaitForAngular(autoWaitForAngular, rootSelector = null, softWait = false, timeout = 60 * 1000) {
|
|
33
33
|
this.helpers.assertArgumentBool(autoWaitForAngular, 'autoWaitForAngular');
|
|
@@ -38,4 +38,4 @@ function setAutoWaitForAngular(autoWaitForAngular, rootSelector = null, softWait
|
|
|
38
38
|
this.autoWaitForAngularRootSelector = rootSelector;
|
|
39
39
|
this.autoWaitForAngularTimeout = timeout;
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2V0QXV0b1dhaXRGb3JBbmd1bGFyLmpzIl0sIm5hbWVzIjpbInNldEF1dG9XYWl0Rm9yQW5ndWxhciIsImF1dG9XYWl0Rm9yQW5ndWxhciIsInJvb3RTZWxlY3RvciIsInNvZnRXYWl0IiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudEJvb2wiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJhdXRvV2FpdEZvckFuZ3VsYXJTb2Z0V2FpdCIsImF1dG9XYWl0Rm9yQW5ndWxhclJvb3RTZWxlY3RvciIsImF1dG9XYWl0Rm9yQW5ndWxhclRpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFTyxTQUFTQSxxQkFBVCxDQUErQkMsa0JBQS9CLEVBQW1EQyxZQUFZLEdBQUcsSUFBbEUsRUFBd0VDLFFBQVEsR0FBRyxLQUFuRixFQUEwRkMsT0FBTyxHQUFHLEtBQUcsSUFBdkcsRUFBNkc7QUFDaEgsT0FBS0MsT0FBTCxDQUFhQyxrQkFBYixDQUFnQ0wsa0JBQWhDLEVBQW9ELG9CQUFwRDtBQUNBLE9BQUtJLE9BQUwsQ0FBYUMsa0JBQWIsQ0FBZ0NILFFBQWhDLEVBQTBDLFVBQTFDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxPQUFLSCxrQkFBTCxHQUEwQkEsa0JBQTFCO0FBQ0EsT0FBS08sMEJBQUwsR0FBa0NMLFFBQWxDO0FBQ0EsT0FBS00sOEJBQUwsR0FBc0NQLFlBQXRDO0FBQ0EsT0FBS1EseUJBQUwsR0FBaUNOLE9BQWpDO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBXYWl0IGZvciBBbmd1bGFyIGJhc2VkIGFwcCB3aWxsIGJlIGxvYWRlZFxyXG4gKiBAZnVuY3Rpb24gc2V0QXV0b1dhaXRGb3JBbmd1bGFyXHJcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gYXV0b1dhaXRGb3JBbmd1bGFyIC0gdHJ1ZSB0byBlbmFibGUgYXV0by13YWl0LiBmYWxzZSB0byBkaXNhYmxlLlxyXG4gKiBAcGFyYW0ge1N0cmluZz19IHJvb3RTZWxlY3RvciAtIFNlbGVjdG9yIGZvciByb290IGVsZW1lbnQsIG5lZWRlZCBvbmx5IGZvciBBbmd1bGFySlMgKHYxKS4gXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW4gQW5ndWxhciAodjIpIGZpcnN0IGF2YWlsYWJsZSByb290IG5vZGUgd2lsbCBiZSBzZWxlY3RlZCBhdXRvbWF0aWNhbGx5LlxyXG4gKiBAcGFyYW0ge0Jvb2xlYW49fSBzb2Z0V2FpdCAtIElmIHRydWUgdGhlbiBkbyBub3QgcHJvZHVjZSBlcnJvciBpZiBzdGFiaWxpdHkgY2Fubm90IGJlIGF0dGFpbmVkLiBEZWZhdWx0IGlzIGZhbHNlLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTtcclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpO1xyXG4gKiB3ZWIuc2V0QXV0b1dhaXRGb3JBbmd1bGFyKHRydWUpO1xyXG4gKi9cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRBdXRvV2FpdEZvckFuZ3VsYXIoYXV0b1dhaXRGb3JBbmd1bGFyLCByb290U2VsZWN0b3IgPSBudWxsLCBzb2Z0V2FpdCA9IGZhbHNlLCB0aW1lb3V0ID0gNjAqMTAwMCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50Qm9vbChhdXRvV2FpdEZvckFuZ3VsYXIsICdhdXRvV2FpdEZvckFuZ3VsYXInKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudEJvb2woc29mdFdhaXQsICdzb2Z0V2FpdCcpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50VGltZW91dCh0aW1lb3V0LCAndGltZW91dCcpO1xyXG5cclxuICAgIHRoaXMuYXV0b1dhaXRGb3JBbmd1bGFyID0gYXV0b1dhaXRGb3JBbmd1bGFyO1xyXG4gICAgdGhpcy5hdXRvV2FpdEZvckFuZ3VsYXJTb2Z0V2FpdCA9IHNvZnRXYWl0O1xyXG4gICAgdGhpcy5hdXRvV2FpdEZvckFuZ3VsYXJSb290U2VsZWN0b3IgPSByb290U2VsZWN0b3I7XHJcbiAgICB0aGlzLmF1dG9XYWl0Rm9yQW5ndWxhclRpbWVvdXQgPSB0aW1lb3V0O1xyXG59Il19
|
|
@@ -7,32 +7,32 @@ exports.setTimeout = setTimeout;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Specifies the amount of time that Oxygen will wait for actions to complete.
|
|
21
|
-
* @description This includes the `open` command, `waitFor*` commands, and commands which wait
|
|
22
|
-
* for elements to appear in DOM or become visible before operating on them.
|
|
23
|
-
* If command wasn't able to complete within the specified period it will fail the
|
|
24
|
-
* test.
|
|
25
|
-
* The default time-out is 60 seconds.
|
|
26
|
-
* @function setTimeout
|
|
27
|
-
* @param {Number} timeout - A time-out in milliseconds.
|
|
28
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
29
|
-
* web.init();//Opens browser session.
|
|
30
|
-
* web.open("www.yourwebsite.com");// Opens a website.
|
|
31
|
-
* web.setTimeout(60000);//Sets the time out to amount of milliseconds .
|
|
19
|
+
/**
|
|
20
|
+
* @summary Specifies the amount of time that Oxygen will wait for actions to complete.
|
|
21
|
+
* @description This includes the `open` command, `waitFor*` commands, and commands which wait
|
|
22
|
+
* for elements to appear in DOM or become visible before operating on them.
|
|
23
|
+
* If command wasn't able to complete within the specified period it will fail the
|
|
24
|
+
* test.
|
|
25
|
+
* The default time-out is 60 seconds.
|
|
26
|
+
* @function setTimeout
|
|
27
|
+
* @param {Number} timeout - A time-out in milliseconds.
|
|
28
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
29
|
+
* web.init();//Opens browser session.
|
|
30
|
+
* web.open("www.yourwebsite.com");// Opens a website.
|
|
31
|
+
* web.setTimeout(60000);//Sets the time out to amount of milliseconds .
|
|
32
32
|
*/
|
|
33
33
|
async function setTimeout(timeout) {
|
|
34
34
|
this.helpers.assertArgumentNumberNonNegative(timeout, 'timeout');
|
|
35
35
|
this.waitForTimeout = timeout;
|
|
36
36
|
await this.helpers.setTimeoutImplicit(timeout);
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2V0VGltZW91dC5qcyJdLCJuYW1lcyI6WyJzZXRUaW1lb3V0IiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlIiwid2FpdEZvclRpbWVvdXQiLCJzZXRUaW1lb3V0SW1wbGljaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGVBQWVBLFVBQWYsQ0FBMEJDLE9BQTFCLEVBQW1DO0FBQ3RDLE9BQUtDLE9BQUwsQ0FBYUMsK0JBQWIsQ0FBNkNGLE9BQTdDLEVBQXNELFNBQXREO0FBQ0EsT0FBS0csY0FBTCxHQUFzQkgsT0FBdEI7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUcsa0JBQWIsQ0FBZ0NKLE9BQWhDLENBQU47QUFDSCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgYW1vdW50IG9mIHRpbWUgdGhhdCBPeHlnZW4gd2lsbCB3YWl0IGZvciBhY3Rpb25zIHRvIGNvbXBsZXRlLlxyXG4gKiBAZGVzY3JpcHRpb24gVGhpcyBpbmNsdWRlcyB0aGUgYG9wZW5gIGNvbW1hbmQsIGB3YWl0Rm9yKmAgY29tbWFuZHMsIGFuZCBjb21tYW5kcyB3aGljaCB3YWl0XHJcbiAqICAgICAgICAgICAgICBmb3IgZWxlbWVudHMgdG8gYXBwZWFyIGluIERPTSBvciBiZWNvbWUgdmlzaWJsZSBiZWZvcmUgb3BlcmF0aW5nIG9uIHRoZW0uICBcclxuICogICAgICAgICAgICAgIElmIGNvbW1hbmQgd2Fzbid0IGFibGUgdG8gY29tcGxldGUgd2l0aGluIHRoZSBzcGVjaWZpZWQgcGVyaW9kIGl0IHdpbGwgZmFpbCB0aGVcclxuICogICAgICAgICAgICAgIHRlc3QuICBcclxuICogICAgICAgICAgICAgIFRoZSBkZWZhdWx0IHRpbWUtb3V0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEBmdW5jdGlvbiBzZXRUaW1lb3V0XHJcbiAqIEBwYXJhbSB7TnVtYmVyfSB0aW1lb3V0IC0gQSB0aW1lLW91dCBpbiBtaWxsaXNlY29uZHMuXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiB3ZWIuaW5pdCgpOy8vT3BlbnMgYnJvd3NlciBzZXNzaW9uLlxyXG4gKiB3ZWIub3BlbihcInd3dy55b3Vyd2Vic2l0ZS5jb21cIik7Ly8gT3BlbnMgYSB3ZWJzaXRlLlxyXG4gKiB3ZWIuc2V0VGltZW91dCg2MDAwMCk7Ly9TZXRzIHRoZSB0aW1lIG91dCB0byBhbW91bnQgb2YgbWlsbGlzZWNvbmRzIC5cclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRUaW1lb3V0KHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlKHRpbWVvdXQsICd0aW1lb3V0Jyk7XHJcbiAgICB0aGlzLndhaXRGb3JUaW1lb3V0ID0gdGltZW91dDtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5zZXRUaW1lb3V0SW1wbGljaXQodGltZW91dCk7XHJcbn1cclxuIl19
|
|
@@ -7,28 +7,28 @@ exports.setWindowSize = setWindowSize;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @summary Sets the size of the outer browser window.
|
|
21
|
-
* @function setWindowSize
|
|
22
|
-
* @param {Number} width - Width in pixels.
|
|
23
|
-
* @param {Number} height - Height in pixels.
|
|
24
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
25
|
-
* web.init();//Opens browser session.
|
|
26
|
-
* web.open("www.yourwebsite.com");// Opens a website.
|
|
27
|
-
* web.setWindowSize(100,40);//Sets the window size (width and height) in pixels.
|
|
19
|
+
/**
|
|
20
|
+
* @summary Sets the size of the outer browser window.
|
|
21
|
+
* @function setWindowSize
|
|
22
|
+
* @param {Number} width - Width in pixels.
|
|
23
|
+
* @param {Number} height - Height in pixels.
|
|
24
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
25
|
+
* web.init();//Opens browser session.
|
|
26
|
+
* web.open("www.yourwebsite.com");// Opens a website.
|
|
27
|
+
* web.setWindowSize(100,40);//Sets the window size (width and height) in pixels.
|
|
28
28
|
*/
|
|
29
29
|
async function setWindowSize(width, height) {
|
|
30
30
|
this.helpers.assertArgumentNumberNonNegative(width);
|
|
31
31
|
this.helpers.assertArgumentNumberNonNegative(height);
|
|
32
32
|
await this.driver.setWindowSize(width, height);
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvc2V0V2luZG93U2l6ZS5qcyJdLCJuYW1lcyI6WyJzZXRXaW5kb3dTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnROdW1iZXJOb25OZWdhdGl2ZSIsImRyaXZlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGVBQWVBLGFBQWYsQ0FBNkJDLEtBQTdCLEVBQW9DQyxNQUFwQyxFQUE0QztBQUMvQyxPQUFLQyxPQUFMLENBQWFDLCtCQUFiLENBQTZDSCxLQUE3QztBQUNBLE9BQUtFLE9BQUwsQ0FBYUMsK0JBQWIsQ0FBNkNGLE1BQTdDO0FBQ0EsUUFBTSxLQUFLRyxNQUFMLENBQVlMLGFBQVosQ0FBMEJDLEtBQTFCLEVBQWlDQyxNQUFqQyxDQUFOO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBTZXRzIHRoZSBzaXplIG9mIHRoZSBvdXRlciBicm93c2VyIHdpbmRvdy5cclxuICogQGZ1bmN0aW9uIHNldFdpbmRvd1NpemVcclxuICogQHBhcmFtIHtOdW1iZXJ9IHdpZHRoIC0gV2lkdGggaW4gcGl4ZWxzLlxyXG4gKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0IC0gSGVpZ2h0IGluIHBpeGVscy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIHdlYi5pbml0KCk7Ly9PcGVucyBicm93c2VyIHNlc3Npb24uXHJcbiAqIHdlYi5vcGVuKFwid3d3LnlvdXJ3ZWJzaXRlLmNvbVwiKTsvLyBPcGVucyBhIHdlYnNpdGUuXHJcbiAqIHdlYi5zZXRXaW5kb3dTaXplKDEwMCw0MCk7Ly9TZXRzIHRoZSB3aW5kb3cgc2l6ZSAod2lkdGggYW5kIGhlaWdodCkgaW4gcGl4ZWxzLlxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldFdpbmRvd1NpemUod2lkdGgsIGhlaWdodCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUod2lkdGgpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUoaGVpZ2h0KTtcclxuICAgIGF3YWl0IHRoaXMuZHJpdmVyLnNldFdpbmRvd1NpemUod2lkdGgsIGhlaWdodCk7XHJcbn1cclxuIl19
|
|
@@ -7,24 +7,24 @@ exports.takeScreenshot = takeScreenshot;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
-
*
|
|
13
|
-
* This program is free software: you can redistribute it and/or modify
|
|
14
|
-
* it under the terms of the GNU General Public License as published by
|
|
15
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
-
* (at your option) any later version.
|
|
10
|
+
/*
|
|
11
|
+
* Copyright (C) 2015-present CloudBeat Limited
|
|
12
|
+
*
|
|
13
|
+
* This program is free software: you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* @function takeScreenshot
|
|
21
|
-
* @summary Take a screenshot of the current page or screen and return it as base64 encoded string.
|
|
22
|
-
* @return {String} Screenshot image encoded as a base64 string.
|
|
23
|
-
* @example <caption>[javascript] Usage example</caption>
|
|
24
|
-
* web.init();
|
|
25
|
-
* web.open("www.yourwebsite.com");
|
|
26
|
-
* var ss = web.takeScreenshot();
|
|
27
|
-
* require("fs").writeFileSync("c:\\screenshot.png", ss, 'base64');
|
|
19
|
+
/**
|
|
20
|
+
* @function takeScreenshot
|
|
21
|
+
* @summary Take a screenshot of the current page or screen and return it as base64 encoded string.
|
|
22
|
+
* @return {String} Screenshot image encoded as a base64 string.
|
|
23
|
+
* @example <caption>[javascript] Usage example</caption>
|
|
24
|
+
* web.init();
|
|
25
|
+
* web.open("www.yourwebsite.com");
|
|
26
|
+
* var ss = web.takeScreenshot();
|
|
27
|
+
* require("fs").writeFileSync("c:\\screenshot.png", ss, 'base64');
|
|
28
28
|
*/
|
|
29
29
|
async function takeScreenshot() {
|
|
30
30
|
var response = await this.driver.takeScreenshot(); // sometimes execution on IE fails with the following error:
|
|
@@ -39,4 +39,4 @@ async function takeScreenshot() {
|
|
|
39
39
|
|
|
40
40
|
return null;
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS13ZWIvY29tbWFuZHMvdGFrZVNjcmVlbnNob3QuanMiXSwibmFtZXMiOlsidGFrZVNjcmVlbnNob3QiLCJyZXNwb25zZSIsImRyaXZlciIsIlN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGVBQWVBLGNBQWYsR0FBZ0M7QUFDbkMsTUFBSUMsUUFBUSxHQUFHLE1BQU0sS0FBS0MsTUFBTCxDQUFZRixjQUFaLEVBQXJCLENBRG1DLENBRW5DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBSSxPQUFPQyxRQUFQLEtBQW9CLFFBQXBCLElBQWdDQSxRQUFRLFlBQVlFLE1BQXhELEVBQWdFO0FBQzVELFdBQU9GLFFBQVA7QUFDSDs7QUFDRCxTQUFPLElBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBmdW5jdGlvbiB0YWtlU2NyZWVuc2hvdFxyXG4gKiBAc3VtbWFyeSBUYWtlIGEgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBwYWdlIG9yIHNjcmVlbiBhbmQgcmV0dXJuIGl0IGFzIGJhc2U2NCBlbmNvZGVkIHN0cmluZy5cclxuICogQHJldHVybiB7U3RyaW5nfSBTY3JlZW5zaG90IGltYWdlIGVuY29kZWQgYXMgYSBiYXNlNjQgc3RyaW5nLlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogd2ViLmluaXQoKTtcclxuICogd2ViLm9wZW4oXCJ3d3cueW91cndlYnNpdGUuY29tXCIpO1xyXG4gKiB2YXIgc3MgPSB3ZWIudGFrZVNjcmVlbnNob3QoKTtcclxuICogcmVxdWlyZShcImZzXCIpLndyaXRlRmlsZVN5bmMoXCJjOlxcXFxzY3JlZW5zaG90LnBuZ1wiLCBzcywgJ2Jhc2U2NCcpO1xyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRha2VTY3JlZW5zaG90KCkge1xyXG4gICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5kcml2ZXIudGFrZVNjcmVlbnNob3QoKTtcclxuICAgIC8vIHNvbWV0aW1lcyBleGVjdXRpb24gb24gSUUgZmFpbHMgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yOlxyXG4gICAgLy8gXCJVbmFibGUgdG8gZGV0ZXJtaW5lIHR5cGUgZnJvbTogRS4gTGFzdCAxIGNoYXJhY3RlcnMgcmVhZDogRVwiXHJcbiAgICAvLyBpdCdzIHVuY2xlYXIgd2hhdCB0aGlzIGVycm9yIG1lYW5zIGFuZCB3aHkgaXQgaGFwcGVuc1xyXG4gICAgLy8gYnV0IHdoZW4gaXQgaGFwcGVucyBzY3JlZW5zaG90KCkgd2lsbCByZXR1cm4gZW1wdHkgYXJyYXkgaW5zdGVhZCBvZiBudWxsIGZvciBzb21lIHJlYXNvblxyXG4gICAgLy8gc28gd2UgcmV0dXJuIHJlc3BvbnNlIG9ubHkgaWYgaXQncyBhIHN0cmluZ1xyXG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycgfHwgcmVzcG9uc2UgaW5zdGFuY2VvZiBTdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxufVxyXG4iXX0=
|