@serenity-js/webdriverio-8 3.31.0
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 +1232 -0
- package/LICENSE.md +201 -0
- package/NOTICE.md +1 -0
- package/README.md +234 -0
- package/esm/adapter/TestRunnerLoader.d.ts +17 -0
- package/esm/adapter/TestRunnerLoader.d.ts.map +1 -0
- package/esm/adapter/TestRunnerLoader.js +63 -0
- package/esm/adapter/TestRunnerLoader.js.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts +25 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.js +90 -0
- package/esm/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +18 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js +18 -0
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
- package/esm/adapter/WebdriverIONotifier.d.ts +71 -0
- package/esm/adapter/WebdriverIONotifier.d.ts.map +1 -0
- package/esm/adapter/WebdriverIONotifier.js +390 -0
- package/esm/adapter/WebdriverIONotifier.js.map +1 -0
- package/esm/adapter/index.d.ts +2 -0
- package/esm/adapter/index.d.ts.map +1 -0
- package/esm/adapter/index.js +2 -0
- package/esm/adapter/index.js.map +1 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.js +42 -0
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
- package/esm/adapter/reporter/InitialisesReporters.d.ts +8 -0
- package/esm/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
- package/esm/adapter/reporter/InitialisesReporters.js +2 -0
- package/esm/adapter/reporter/InitialisesReporters.js.map +1 -0
- package/esm/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
- package/esm/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
- package/esm/adapter/reporter/OutputStreamBuffer.js +25 -0
- package/esm/adapter/reporter/OutputStreamBuffer.js.map +1 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.js +24 -0
- package/esm/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
- package/esm/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
- package/esm/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
- package/esm/adapter/reporter/ProvidesWriteStream.js +2 -0
- package/esm/adapter/reporter/ProvidesWriteStream.js.map +1 -0
- package/esm/adapter/reporter/TagPrinter.d.ts +17 -0
- package/esm/adapter/reporter/TagPrinter.d.ts.map +1 -0
- package/esm/adapter/reporter/TagPrinter.js +52 -0
- package/esm/adapter/reporter/TagPrinter.js.map +1 -0
- package/esm/adapter/reporter/index.d.ts +6 -0
- package/esm/adapter/reporter/index.d.ts.map +1 -0
- package/esm/adapter/reporter/index.js +6 -0
- package/esm/adapter/reporter/index.js.map +1 -0
- package/esm/api.d.ts +3 -0
- package/esm/api.d.ts.map +1 -0
- package/esm/api.js +2 -0
- package/esm/api.js.map +1 -0
- package/esm/config/WebdriverIOConfig.d.ts +95 -0
- package/esm/config/WebdriverIOConfig.d.ts.map +1 -0
- package/esm/config/WebdriverIOConfig.js +2 -0
- package/esm/config/WebdriverIOConfig.js.map +1 -0
- package/esm/config/index.d.ts +2 -0
- package/esm/config/index.d.ts.map +1 -0
- package/esm/config/index.js +2 -0
- package/esm/config/index.js.map +1 -0
- package/esm/index.d.ts +16 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +14 -0
- package/esm/index.js.map +1 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +40 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +43 -0
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
- package/esm/screenplay/abilities/index.d.ts +2 -0
- package/esm/screenplay/abilities/index.d.ts.map +1 -0
- package/esm/screenplay/abilities/index.js +2 -0
- package/esm/screenplay/abilities/index.js.map +1 -0
- package/esm/screenplay/index.d.ts +3 -0
- package/esm/screenplay/index.d.ts.map +1 -0
- package/esm/screenplay/index.js +3 -0
- package/esm/screenplay/index.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts +25 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.js +125 -0
- package/esm/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOCookie.d.ts +15 -0
- package/esm/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOCookie.js +42 -0
- package/esm/screenplay/models/WebdriverIOCookie.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.js +20 -0
- package/esm/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts +27 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.js +74 -0
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOPage.d.ts +50 -0
- package/esm/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOPage.js +219 -0
- package/esm/screenplay/models/WebdriverIOPage.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOPageElement.d.ts +34 -0
- package/esm/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOPageElement.js +220 -0
- package/esm/screenplay/models/WebdriverIOPageElement.js.map +1 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +30 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +77 -0
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.js +40 -0
- package/esm/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
- package/esm/screenplay/models/index.d.ts +5 -0
- package/esm/screenplay/models/index.d.ts.map +1 -0
- package/esm/screenplay/models/index.js +5 -0
- package/esm/screenplay/models/index.js.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts +33 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.js +123 -0
- package/esm/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.js +30 -0
- package/esm/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
- package/esm/screenplay/models/locators/index.d.ts +3 -0
- package/esm/screenplay/models/locators/index.d.ts.map +1 -0
- package/esm/screenplay/models/locators/index.js +3 -0
- package/esm/screenplay/models/locators/index.js.map +1 -0
- package/lib/adapter/TestRunnerLoader.d.ts +17 -0
- package/lib/adapter/TestRunnerLoader.d.ts.map +1 -0
- package/lib/adapter/TestRunnerLoader.js +67 -0
- package/lib/adapter/TestRunnerLoader.js.map +1 -0
- package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts +25 -0
- package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
- package/lib/adapter/WebdriverIOFrameworkAdapter.js +127 -0
- package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +18 -0
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js +22 -0
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
- package/lib/adapter/WebdriverIONotifier.d.ts +71 -0
- package/lib/adapter/WebdriverIONotifier.d.ts.map +1 -0
- package/lib/adapter/WebdriverIONotifier.js +394 -0
- package/lib/adapter/WebdriverIONotifier.js.map +1 -0
- package/lib/adapter/index.d.ts +2 -0
- package/lib/adapter/index.d.ts.map +1 -0
- package/lib/adapter/index.js +18 -0
- package/lib/adapter/index.js.map +1 -0
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.js +49 -0
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
- package/lib/adapter/reporter/InitialisesReporters.d.ts +8 -0
- package/lib/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
- package/lib/adapter/reporter/InitialisesReporters.js +3 -0
- package/lib/adapter/reporter/InitialisesReporters.js.map +1 -0
- package/lib/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
- package/lib/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
- package/lib/adapter/reporter/OutputStreamBuffer.js +29 -0
- package/lib/adapter/reporter/OutputStreamBuffer.js.map +1 -0
- package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
- package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
- package/lib/adapter/reporter/OutputStreamBufferPrinter.js +28 -0
- package/lib/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
- package/lib/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
- package/lib/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
- package/lib/adapter/reporter/ProvidesWriteStream.js +3 -0
- package/lib/adapter/reporter/ProvidesWriteStream.js.map +1 -0
- package/lib/adapter/reporter/TagPrinter.d.ts +17 -0
- package/lib/adapter/reporter/TagPrinter.d.ts.map +1 -0
- package/lib/adapter/reporter/TagPrinter.js +56 -0
- package/lib/adapter/reporter/TagPrinter.js.map +1 -0
- package/lib/adapter/reporter/index.d.ts +6 -0
- package/lib/adapter/reporter/index.d.ts.map +1 -0
- package/lib/adapter/reporter/index.js +22 -0
- package/lib/adapter/reporter/index.js.map +1 -0
- package/lib/api.d.ts +3 -0
- package/lib/api.d.ts.map +1 -0
- package/lib/api.js +18 -0
- package/lib/api.js.map +1 -0
- package/lib/config/WebdriverIOConfig.d.ts +95 -0
- package/lib/config/WebdriverIOConfig.d.ts.map +1 -0
- package/lib/config/WebdriverIOConfig.js +3 -0
- package/lib/config/WebdriverIOConfig.js.map +1 -0
- package/lib/config/index.d.ts +2 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +18 -0
- package/lib/config/index.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +52 -0
- package/lib/index.js.map +1 -0
- package/lib/package.json +1 -0
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +40 -0
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +47 -0
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
- package/lib/screenplay/abilities/index.d.ts +2 -0
- package/lib/screenplay/abilities/index.d.ts.map +1 -0
- package/lib/screenplay/abilities/index.js +18 -0
- package/lib/screenplay/abilities/index.js.map +1 -0
- package/lib/screenplay/index.d.ts +3 -0
- package/lib/screenplay/index.d.ts.map +1 -0
- package/lib/screenplay/index.js +19 -0
- package/lib/screenplay/index.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts +25 -0
- package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOBrowsingSession.js +129 -0
- package/lib/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOCookie.d.ts +15 -0
- package/lib/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOCookie.js +46 -0
- package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
- package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOErrorHandler.js +24 -0
- package/lib/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts +27 -0
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.js +78 -0
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOPage.d.ts +50 -0
- package/lib/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOPage.js +256 -0
- package/lib/screenplay/models/WebdriverIOPage.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOPageElement.d.ts +34 -0
- package/lib/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOPageElement.js +257 -0
- package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -0
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +30 -0
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +81 -0
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
- package/lib/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
- package/lib/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
- package/lib/screenplay/models/WebdriverProtocolErrorCode.js +43 -0
- package/lib/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
- package/lib/screenplay/models/index.d.ts +5 -0
- package/lib/screenplay/models/index.d.ts.map +1 -0
- package/lib/screenplay/models/index.js +21 -0
- package/lib/screenplay/models/index.js.map +1 -0
- package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +33 -0
- package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
- package/lib/screenplay/models/locators/WebdriverIOLocator.js +128 -0
- package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
- package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
- package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
- package/lib/screenplay/models/locators/WebdriverIORootLocator.js +34 -0
- package/lib/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
- package/lib/screenplay/models/locators/index.d.ts +3 -0
- package/lib/screenplay/models/locators/index.d.ts.map +1 -0
- package/lib/screenplay/models/locators/index.js +19 -0
- package/lib/screenplay/models/locators/index.js.map +1 -0
- package/package.json +122 -0
- package/src/adapter/TestRunnerLoader.ts +90 -0
- package/src/adapter/WebdriverIOFrameworkAdapter.ts +130 -0
- package/src/adapter/WebdriverIOFrameworkAdapterFactory.ts +39 -0
- package/src/adapter/WebdriverIONotifier.ts +480 -0
- package/src/adapter/index.ts +1 -0
- package/src/adapter/reporter/BrowserCapabilitiesReporter.ts +63 -0
- package/src/adapter/reporter/InitialisesReporters.ts +8 -0
- package/src/adapter/reporter/OutputStreamBuffer.ts +30 -0
- package/src/adapter/reporter/OutputStreamBufferPrinter.ts +30 -0
- package/src/adapter/reporter/ProvidesWriteStream.ts +8 -0
- package/src/adapter/reporter/TagPrinter.ts +69 -0
- package/src/adapter/reporter/index.ts +5 -0
- package/src/api.ts +2 -0
- package/src/config/WebdriverIOConfig.ts +94 -0
- package/src/config/index.ts +1 -0
- package/src/index.ts +32 -0
- package/src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts +46 -0
- package/src/screenplay/abilities/index.ts +1 -0
- package/src/screenplay/index.ts +2 -0
- package/src/screenplay/models/WebdriverIOBrowsingSession.ts +176 -0
- package/src/screenplay/models/WebdriverIOCookie.ts +51 -0
- package/src/screenplay/models/WebdriverIOErrorHandler.ts +25 -0
- package/src/screenplay/models/WebdriverIOModalDialogHandler.ts +99 -0
- package/src/screenplay/models/WebdriverIOPage.ts +311 -0
- package/src/screenplay/models/WebdriverIOPageElement.ts +280 -0
- package/src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts +100 -0
- package/src/screenplay/models/WebdriverProtocolErrorCode.ts +38 -0
- package/src/screenplay/models/index.ts +4 -0
- package/src/screenplay/models/locators/WebdriverIOLocator.ts +176 -0
- package/src/screenplay/models/locators/WebdriverIORootLocator.ts +34 -0
- package/src/screenplay/models/locators/index.ts +2 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebdriverIOPuppeteerModalDialogHandler = void 0;
|
|
4
|
+
const web_1 = require("@serenity-js/web");
|
|
5
|
+
/**
|
|
6
|
+
* WebdriverIO-specific implementation of [`ModalDialogHandler`](https://serenity-js.org/api/web/class/ModalDialogHandler/), applicable when WebdriverIO
|
|
7
|
+
* uses [Puppeteer](https://developer.chrome.com/docs/puppeteer/).
|
|
8
|
+
*
|
|
9
|
+
* Automatically handles any simple JavaScript modal dialog windows, such as
|
|
10
|
+
* those opened by [`window.alert()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert),
|
|
11
|
+
* [`window.confirm()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm),
|
|
12
|
+
* or [`window.prompt()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt).
|
|
13
|
+
*
|
|
14
|
+
* This helps to avoid Puppeteer hanging when there's an interaction pending
|
|
15
|
+
* and a dialog is already open, see https://github.com/puppeteer/puppeteer/issues/2481
|
|
16
|
+
*/
|
|
17
|
+
class WebdriverIOPuppeteerModalDialogHandler extends web_1.ModalDialogHandler {
|
|
18
|
+
page;
|
|
19
|
+
dialogHandlingInProgress = false;
|
|
20
|
+
defaultHandler = async (dialog) => {
|
|
21
|
+
await dialog.dismiss();
|
|
22
|
+
return new web_1.DismissedModalDialog(dialog.message());
|
|
23
|
+
};
|
|
24
|
+
currentHandler;
|
|
25
|
+
constructor(page) {
|
|
26
|
+
super();
|
|
27
|
+
this.page = page;
|
|
28
|
+
this.currentHandler = this.defaultHandler;
|
|
29
|
+
// remove the default WebdriverIO handler because it makes any other listeners hang
|
|
30
|
+
// https://github.com/webdriverio/webdriverio/blob/518c56a61353b2f65436b83c618117021da7e622/packages/devtools/src/devtoolsdriver.ts#L69
|
|
31
|
+
this.page.removeAllListeners('dialog');
|
|
32
|
+
// register Serenity/JS handler instead
|
|
33
|
+
this.page.on('dialog', async (dialog) => {
|
|
34
|
+
// Puppeteer doesn't seem to synchronise async handlers correctly,
|
|
35
|
+
// hence the handleModalDialog wrapper and the `dialogHandlingInProgress` lock.
|
|
36
|
+
await this.handleModalDialog(() => this.currentHandler(dialog));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async acceptNext() {
|
|
40
|
+
this.currentHandler = async (dialog) => {
|
|
41
|
+
await dialog.accept(dialog.defaultValue());
|
|
42
|
+
return new web_1.AcceptedModalDialog(dialog.message());
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async acceptNextWithValue(text) {
|
|
46
|
+
this.currentHandler = async (dialog) => {
|
|
47
|
+
await dialog.accept(String(text));
|
|
48
|
+
return new web_1.AcceptedModalDialog(dialog.message());
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async dismissNext() {
|
|
52
|
+
this.currentHandler = async (dialog) => {
|
|
53
|
+
await dialog.dismiss();
|
|
54
|
+
return new web_1.DismissedModalDialog(dialog.message());
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async reset() {
|
|
58
|
+
this.modalDialog = new web_1.AbsentModalDialog();
|
|
59
|
+
this.currentHandler = this.defaultHandler;
|
|
60
|
+
}
|
|
61
|
+
async discard() {
|
|
62
|
+
this.page.off('dialog', this.currentHandler);
|
|
63
|
+
}
|
|
64
|
+
async last() {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
const interval = setInterval(() => {
|
|
67
|
+
if (!this.dialogHandlingInProgress) {
|
|
68
|
+
clearInterval(interval);
|
|
69
|
+
resolve(this.modalDialog);
|
|
70
|
+
}
|
|
71
|
+
}, 25);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
async handleModalDialog(handler) {
|
|
75
|
+
this.dialogHandlingInProgress = true;
|
|
76
|
+
this.modalDialog = await handler();
|
|
77
|
+
this.dialogHandlingInProgress = false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.WebdriverIOPuppeteerModalDialogHandler = WebdriverIOPuppeteerModalDialogHandler;
|
|
81
|
+
//# sourceMappingURL=WebdriverIOPuppeteerModalDialogHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIOPuppeteerModalDialogHandler.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors#table_of_errors
|
|
3
|
+
* https://github.com/SeleniumHQ/selenium/blob/e70e22390000a65a6b706fbb33bbff8913555670/javascript/node/selenium-webdriver/lib/error.js#L441
|
|
4
|
+
*
|
|
5
|
+
* @package
|
|
6
|
+
*/
|
|
7
|
+
export declare enum WebdriverProtocolErrorCode {
|
|
8
|
+
WebDriverError = "unknown error",
|
|
9
|
+
DetachedShadowRootError = "detached shadow root",
|
|
10
|
+
ElementClickInterceptedError = "element click intercepted",
|
|
11
|
+
ElementNotInteractableError = "element not interactable",
|
|
12
|
+
ElementNotSelectableError = "element not selectable",
|
|
13
|
+
InsecureCertificateError = "insecure certificate",
|
|
14
|
+
InvalidArgumentError = "invalid argument",
|
|
15
|
+
InvalidCookieDomainError = "invalid cookie domain",
|
|
16
|
+
InvalidCoordinatesError = "invalid coordinates",
|
|
17
|
+
InvalidElementStateError = "invalid element state",
|
|
18
|
+
InvalidSelectorError = "invalid selector",
|
|
19
|
+
NoSuchSessionError = "invalid session id",
|
|
20
|
+
JavascriptError = "javascript error",
|
|
21
|
+
MoveTargetOutOfBoundsError = "move target out of bounds",
|
|
22
|
+
NoSuchAlertError = "no such alert",
|
|
23
|
+
NoSuchCookieError = "no such cookie",
|
|
24
|
+
NoSuchElementError = "no such element",
|
|
25
|
+
NoSuchFrameError = "no such frame",
|
|
26
|
+
NoSuchShadowRootError = "no such shadow root",
|
|
27
|
+
NoSuchWindowError = "no such window",
|
|
28
|
+
ScriptTimeoutError = "script timeout",
|
|
29
|
+
SessionNotCreatedError = "session not created",
|
|
30
|
+
StaleElementReferenceError = "stale element reference",
|
|
31
|
+
TimeoutError = "timeout",
|
|
32
|
+
UnableToSetCookieError = "unable to set cookie",
|
|
33
|
+
UnableToCaptureScreenError = "unable to capture screen",
|
|
34
|
+
UnexpectedAlertOpenError = "unexpected alert open",
|
|
35
|
+
UnknownCommandError = "unknown command",
|
|
36
|
+
UnknownMethodError = "unknown method",
|
|
37
|
+
UnsupportedOperationError = "unsupported operation"
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=WebdriverProtocolErrorCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverProtocolErrorCode.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverProtocolErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,0BAA0B;IAClC,cAAc,kBAAkB;IAChC,uBAAuB,yBAAyB;IAChD,4BAA4B,8BAA8B;IAC1D,2BAA2B,6BAA6B;IACxD,yBAAyB,2BAA2B;IACpD,wBAAwB,yBAAyB;IACjD,oBAAoB,qBAAqB;IACzC,wBAAwB,0BAA0B;IAClD,uBAAuB,wBAAwB;IAC/C,wBAAwB,0BAA0B;IAClD,oBAAoB,qBAAqB;IACzC,kBAAkB,uBAAuB;IACzC,eAAe,qBAAqB;IACpC,0BAA0B,8BAA8B;IACxD,gBAAgB,kBAAkB;IAClC,iBAAiB,mBAAmB;IACpC,kBAAkB,oBAAoB;IACtC,gBAAgB,kBAAkB;IAClC,qBAAqB,wBAAwB;IAC7C,iBAAiB,mBAAmB;IACpC,kBAAkB,mBAAmB;IACrC,sBAAsB,wBAAwB;IAC9C,0BAA0B,4BAA4B;IACtD,YAAY,YAAY;IACxB,sBAAsB,yBAAyB;IAC/C,0BAA0B,6BAA6B;IACvD,wBAAwB,0BAA0B;IAClD,mBAAmB,oBAAoB;IACvC,kBAAkB,mBAAmB;IACrC,yBAAyB,0BAA0B;CACtD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebdriverProtocolErrorCode = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors#table_of_errors
|
|
6
|
+
* https://github.com/SeleniumHQ/selenium/blob/e70e22390000a65a6b706fbb33bbff8913555670/javascript/node/selenium-webdriver/lib/error.js#L441
|
|
7
|
+
*
|
|
8
|
+
* @package
|
|
9
|
+
*/
|
|
10
|
+
var WebdriverProtocolErrorCode;
|
|
11
|
+
(function (WebdriverProtocolErrorCode) {
|
|
12
|
+
WebdriverProtocolErrorCode["WebDriverError"] = "unknown error";
|
|
13
|
+
WebdriverProtocolErrorCode["DetachedShadowRootError"] = "detached shadow root";
|
|
14
|
+
WebdriverProtocolErrorCode["ElementClickInterceptedError"] = "element click intercepted";
|
|
15
|
+
WebdriverProtocolErrorCode["ElementNotInteractableError"] = "element not interactable";
|
|
16
|
+
WebdriverProtocolErrorCode["ElementNotSelectableError"] = "element not selectable";
|
|
17
|
+
WebdriverProtocolErrorCode["InsecureCertificateError"] = "insecure certificate";
|
|
18
|
+
WebdriverProtocolErrorCode["InvalidArgumentError"] = "invalid argument";
|
|
19
|
+
WebdriverProtocolErrorCode["InvalidCookieDomainError"] = "invalid cookie domain";
|
|
20
|
+
WebdriverProtocolErrorCode["InvalidCoordinatesError"] = "invalid coordinates";
|
|
21
|
+
WebdriverProtocolErrorCode["InvalidElementStateError"] = "invalid element state";
|
|
22
|
+
WebdriverProtocolErrorCode["InvalidSelectorError"] = "invalid selector";
|
|
23
|
+
WebdriverProtocolErrorCode["NoSuchSessionError"] = "invalid session id";
|
|
24
|
+
WebdriverProtocolErrorCode["JavascriptError"] = "javascript error";
|
|
25
|
+
WebdriverProtocolErrorCode["MoveTargetOutOfBoundsError"] = "move target out of bounds";
|
|
26
|
+
WebdriverProtocolErrorCode["NoSuchAlertError"] = "no such alert";
|
|
27
|
+
WebdriverProtocolErrorCode["NoSuchCookieError"] = "no such cookie";
|
|
28
|
+
WebdriverProtocolErrorCode["NoSuchElementError"] = "no such element";
|
|
29
|
+
WebdriverProtocolErrorCode["NoSuchFrameError"] = "no such frame";
|
|
30
|
+
WebdriverProtocolErrorCode["NoSuchShadowRootError"] = "no such shadow root";
|
|
31
|
+
WebdriverProtocolErrorCode["NoSuchWindowError"] = "no such window";
|
|
32
|
+
WebdriverProtocolErrorCode["ScriptTimeoutError"] = "script timeout";
|
|
33
|
+
WebdriverProtocolErrorCode["SessionNotCreatedError"] = "session not created";
|
|
34
|
+
WebdriverProtocolErrorCode["StaleElementReferenceError"] = "stale element reference";
|
|
35
|
+
WebdriverProtocolErrorCode["TimeoutError"] = "timeout";
|
|
36
|
+
WebdriverProtocolErrorCode["UnableToSetCookieError"] = "unable to set cookie";
|
|
37
|
+
WebdriverProtocolErrorCode["UnableToCaptureScreenError"] = "unable to capture screen";
|
|
38
|
+
WebdriverProtocolErrorCode["UnexpectedAlertOpenError"] = "unexpected alert open";
|
|
39
|
+
WebdriverProtocolErrorCode["UnknownCommandError"] = "unknown command";
|
|
40
|
+
WebdriverProtocolErrorCode["UnknownMethodError"] = "unknown method";
|
|
41
|
+
WebdriverProtocolErrorCode["UnsupportedOperationError"] = "unsupported operation";
|
|
42
|
+
})(WebdriverProtocolErrorCode || (exports.WebdriverProtocolErrorCode = WebdriverProtocolErrorCode = {}));
|
|
43
|
+
//# sourceMappingURL=WebdriverProtocolErrorCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverProtocolErrorCode.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverProtocolErrorCode.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAY,0BA+BX;AA/BD,WAAY,0BAA0B;IAClC,8DAAgC,CAAA;IAChC,8EAAgD,CAAA;IAChD,wFAA0D,CAAA;IAC1D,sFAAwD,CAAA;IACxD,kFAAoD,CAAA;IACpD,+EAAiD,CAAA;IACjD,uEAAyC,CAAA;IACzC,gFAAkD,CAAA;IAClD,6EAA+C,CAAA;IAC/C,gFAAkD,CAAA;IAClD,uEAAyC,CAAA;IACzC,uEAAyC,CAAA;IACzC,kEAAoC,CAAA;IACpC,sFAAwD,CAAA;IACxD,gEAAkC,CAAA;IAClC,kEAAoC,CAAA;IACpC,oEAAsC,CAAA;IACtC,gEAAkC,CAAA;IAClC,2EAA6C,CAAA;IAC7C,kEAAoC,CAAA;IACpC,mEAAqC,CAAA;IACrC,4EAA8C,CAAA;IAC9C,oFAAsD,CAAA;IACtD,sDAAwB,CAAA;IACxB,6EAA+C,CAAA;IAC/C,qFAAuD,CAAA;IACvD,gFAAkD,CAAA;IAClD,qEAAuC,CAAA;IACvC,mEAAqC,CAAA;IACrC,iFAAmD,CAAA;AACvD,CAAC,EA/BW,0BAA0B,0CAA1B,0BAA0B,QA+BrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./WebdriverIOBrowsingSession.js"), exports);
|
|
18
|
+
__exportStar(require("./WebdriverIOCookie.js"), exports);
|
|
19
|
+
__exportStar(require("./WebdriverIOPage.js"), exports);
|
|
20
|
+
__exportStar(require("./WebdriverIOPageElement.js"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,yDAAuC;AACvC,uDAAqC;AACrC,8DAA4C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import 'webdriverio';
|
|
2
|
+
import type { PageElement, RootLocator, Selector } from '@serenity-js/web';
|
|
3
|
+
import { Locator } from '@serenity-js/web';
|
|
4
|
+
import type { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler.js';
|
|
5
|
+
/**
|
|
6
|
+
* WebdriverIO-specific implementation of [`Locator`](https://serenity-js.org/api/web/class/Locator/).
|
|
7
|
+
*
|
|
8
|
+
* @group Models
|
|
9
|
+
*/
|
|
10
|
+
export declare class WebdriverIOLocator extends Locator<WebdriverIO.Element, string> {
|
|
11
|
+
private readonly errorHandler;
|
|
12
|
+
constructor(parent: RootLocator<WebdriverIO.Element>, selector: Selector, errorHandler: WebdriverIOErrorHandler);
|
|
13
|
+
protected nativeSelector(): string;
|
|
14
|
+
isPresent(): Promise<boolean>;
|
|
15
|
+
nativeElement(): Promise<WebdriverIO.Element>;
|
|
16
|
+
protected resolveNativeElement(): Promise<WebdriverIO.Element>;
|
|
17
|
+
allNativeElements(): Promise<Array<WebdriverIO.Element>>;
|
|
18
|
+
of(parent: WebdriverIOLocator): Locator<WebdriverIO.Element, string>;
|
|
19
|
+
closestTo(child: WebdriverIOLocator): Locator<WebdriverIO.Element, string>;
|
|
20
|
+
locate(child: WebdriverIOLocator): Locator<WebdriverIO.Element, string>;
|
|
21
|
+
element(): PageElement<WebdriverIO.Element>;
|
|
22
|
+
allElements(): Promise<Array<PageElement<WebdriverIO.Element>>>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export declare class WebdriverIOExistingElementLocator extends WebdriverIOLocator {
|
|
28
|
+
private readonly existingNativeElement;
|
|
29
|
+
constructor(parentRoot: RootLocator<WebdriverIO.Element>, selector: Selector, errorHandler: WebdriverIOErrorHandler, existingNativeElement: WebdriverIO.Element);
|
|
30
|
+
nativeElement(): Promise<WebdriverIO.Element>;
|
|
31
|
+
allNativeElements(): Promise<Array<WebdriverIO.Element>>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=WebdriverIOLocator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIOLocator.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIOLocator.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAmE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE5G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAI7E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAKpE,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAF7B,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EACxC,QAAQ,EAAE,QAAQ,EACD,YAAY,EAAE,uBAAuB;IAM1D,SAAS,CAAC,cAAc,IAAI,MAAM;IA4B5B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7B,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;cASnC,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAgB9D,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAK9D,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAIpE,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAI1E,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAIvE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;IAIrC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;CAcxE;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,kBAAkB;IAKjE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAHtC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EAC5C,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,uBAAuB,EACpB,qBAAqB,EAAE,WAAW,CAAC,OAAO;IAKzD,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAI7C,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CAGjE"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebdriverIOExistingElementLocator = exports.WebdriverIOLocator = void 0;
|
|
4
|
+
require("webdriverio");
|
|
5
|
+
const core_1 = require("@serenity-js/core");
|
|
6
|
+
const web_1 = require("@serenity-js/web");
|
|
7
|
+
const WebdriverIOPageElement_js_1 = require("../WebdriverIOPageElement.js");
|
|
8
|
+
/**
|
|
9
|
+
* WebdriverIO-specific implementation of [`Locator`](https://serenity-js.org/api/web/class/Locator/).
|
|
10
|
+
*
|
|
11
|
+
* @group Models
|
|
12
|
+
*/
|
|
13
|
+
class WebdriverIOLocator extends web_1.Locator {
|
|
14
|
+
errorHandler;
|
|
15
|
+
constructor(parent, selector, errorHandler) {
|
|
16
|
+
super(parent, selector);
|
|
17
|
+
this.errorHandler = errorHandler;
|
|
18
|
+
}
|
|
19
|
+
// todo: refactor; replace with a map and some more generic lookup mechanism
|
|
20
|
+
nativeSelector() {
|
|
21
|
+
if (this.selector instanceof web_1.ByCss) {
|
|
22
|
+
return this.selector.value;
|
|
23
|
+
}
|
|
24
|
+
if (this.selector instanceof web_1.ByDeepCss) {
|
|
25
|
+
return `>>> ${this.selector.value}`;
|
|
26
|
+
}
|
|
27
|
+
if (this.selector instanceof web_1.ByCssContainingText) {
|
|
28
|
+
return `${this.selector.value}*=${this.selector.text}`;
|
|
29
|
+
}
|
|
30
|
+
if (this.selector instanceof web_1.ById) {
|
|
31
|
+
return `#${this.selector.value}`;
|
|
32
|
+
}
|
|
33
|
+
if (this.selector instanceof web_1.ByTagName) {
|
|
34
|
+
return `<${this.selector.value} />`;
|
|
35
|
+
}
|
|
36
|
+
if (this.selector instanceof web_1.ByXPath) {
|
|
37
|
+
return this.selector.value;
|
|
38
|
+
}
|
|
39
|
+
throw new core_1.LogicError((0, core_1.f) `${this.selector} is not supported by ${this.constructor.name}`);
|
|
40
|
+
}
|
|
41
|
+
async isPresent() {
|
|
42
|
+
try {
|
|
43
|
+
const element = await this.resolveNativeElement();
|
|
44
|
+
return Boolean(element);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async nativeElement() {
|
|
51
|
+
try {
|
|
52
|
+
return await this.resolveNativeElement();
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return await this.errorHandler.executeIfHandled(error, () => this.resolveNativeElement());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async resolveNativeElement() {
|
|
59
|
+
const parent = await this.parent.nativeElement();
|
|
60
|
+
if (parent.error) {
|
|
61
|
+
throw parent.error;
|
|
62
|
+
}
|
|
63
|
+
const element = await parent.$(this.nativeSelector());
|
|
64
|
+
if (element.error) {
|
|
65
|
+
throw element.error;
|
|
66
|
+
}
|
|
67
|
+
return element;
|
|
68
|
+
}
|
|
69
|
+
async allNativeElements() {
|
|
70
|
+
const parent = await this.parent.nativeElement();
|
|
71
|
+
return parent.$$(this.nativeSelector());
|
|
72
|
+
}
|
|
73
|
+
of(parent) {
|
|
74
|
+
return new WebdriverIOLocator(parent, this.selector, this.errorHandler);
|
|
75
|
+
}
|
|
76
|
+
closestTo(child) {
|
|
77
|
+
return new WebdriverIOParentElementLocator(this.parent, this.selector, child, this.errorHandler);
|
|
78
|
+
}
|
|
79
|
+
locate(child) {
|
|
80
|
+
return new WebdriverIOLocator(this, child.selector, this.errorHandler);
|
|
81
|
+
}
|
|
82
|
+
element() {
|
|
83
|
+
return new WebdriverIOPageElement_js_1.WebdriverIOPageElement(this);
|
|
84
|
+
}
|
|
85
|
+
async allElements() {
|
|
86
|
+
const elements = await this.allNativeElements();
|
|
87
|
+
return elements.map(childElement => new WebdriverIOPageElement_js_1.WebdriverIOPageElement(new WebdriverIOExistingElementLocator(this.parent, this.selector, this.errorHandler, childElement)));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.WebdriverIOLocator = WebdriverIOLocator;
|
|
91
|
+
/**
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
class WebdriverIOExistingElementLocator extends WebdriverIOLocator {
|
|
95
|
+
existingNativeElement;
|
|
96
|
+
constructor(parentRoot, selector, errorHandler, existingNativeElement) {
|
|
97
|
+
super(parentRoot, selector, errorHandler);
|
|
98
|
+
this.existingNativeElement = existingNativeElement;
|
|
99
|
+
}
|
|
100
|
+
async nativeElement() {
|
|
101
|
+
return this.existingNativeElement;
|
|
102
|
+
}
|
|
103
|
+
async allNativeElements() {
|
|
104
|
+
return [this.existingNativeElement];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.WebdriverIOExistingElementLocator = WebdriverIOExistingElementLocator;
|
|
108
|
+
class WebdriverIOParentElementLocator extends WebdriverIOLocator {
|
|
109
|
+
child;
|
|
110
|
+
constructor(parentRoot, selector, child, errorHandler) {
|
|
111
|
+
super(parentRoot, selector, errorHandler);
|
|
112
|
+
this.child = child;
|
|
113
|
+
}
|
|
114
|
+
async resolveNativeElement() {
|
|
115
|
+
const cssSelector = this.asCssSelector(this.selector);
|
|
116
|
+
const child = await this.child.nativeElement();
|
|
117
|
+
if (child.error) {
|
|
118
|
+
throw child.error;
|
|
119
|
+
}
|
|
120
|
+
return child.$(
|
|
121
|
+
/* c8 ignore next */
|
|
122
|
+
new Function(`return this.closest(\`${cssSelector.value}\`)`));
|
|
123
|
+
}
|
|
124
|
+
async allNativeElements() {
|
|
125
|
+
return [await this.nativeElement()];
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=WebdriverIOLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIOLocator.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIOLocator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import 'webdriverio';
|
|
2
|
+
import { RootLocator } from '@serenity-js/web';
|
|
3
|
+
/**
|
|
4
|
+
* WebdriverIO-specific implementation of [`RootLocator`](https://serenity-js.org/api/web/class/RootLocator/).
|
|
5
|
+
*
|
|
6
|
+
* @group Models
|
|
7
|
+
*/
|
|
8
|
+
export declare class WebdriverIORootLocator extends RootLocator<WebdriverIO.Browser> {
|
|
9
|
+
private readonly browser;
|
|
10
|
+
constructor(browser: WebdriverIO.Browser);
|
|
11
|
+
isPresent(): Promise<boolean>;
|
|
12
|
+
nativeElement(): Promise<Pick<WebdriverIO.Browser, '$' | '$$'>>;
|
|
13
|
+
switchToFrame(frame: Element | object): Promise<void>;
|
|
14
|
+
switchToParentFrame(): Promise<void>;
|
|
15
|
+
switchToMainFrame(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=WebdriverIORootLocator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIORootLocator.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIORootLocator.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW,CAAC,OAAO;IAInD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;IAI/D,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebdriverIORootLocator = void 0;
|
|
4
|
+
require("webdriverio");
|
|
5
|
+
const web_1 = require("@serenity-js/web");
|
|
6
|
+
/**
|
|
7
|
+
* WebdriverIO-specific implementation of [`RootLocator`](https://serenity-js.org/api/web/class/RootLocator/).
|
|
8
|
+
*
|
|
9
|
+
* @group Models
|
|
10
|
+
*/
|
|
11
|
+
class WebdriverIORootLocator extends web_1.RootLocator {
|
|
12
|
+
browser;
|
|
13
|
+
constructor(browser) {
|
|
14
|
+
super();
|
|
15
|
+
this.browser = browser;
|
|
16
|
+
}
|
|
17
|
+
async isPresent() {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
async nativeElement() {
|
|
21
|
+
return this.browser;
|
|
22
|
+
}
|
|
23
|
+
async switchToFrame(frame) {
|
|
24
|
+
await this.browser.switchToFrame(frame);
|
|
25
|
+
}
|
|
26
|
+
async switchToParentFrame() {
|
|
27
|
+
await this.browser.switchToParentFrame();
|
|
28
|
+
}
|
|
29
|
+
async switchToMainFrame() {
|
|
30
|
+
await this.browser.switchToFrame(null); // eslint-disable-line unicorn/no-null
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.WebdriverIORootLocator = WebdriverIORootLocator;
|
|
34
|
+
//# sourceMappingURL=WebdriverIORootLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebdriverIORootLocator.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIORootLocator.ts"],"names":[],"mappings":";;;AAAA,uBAAqB;AAErB,0CAA+C;AAE/C;;;;GAIG;AACH,MAAa,sBAAuB,SAAQ,iBAAgC;IAC3C;IAA7B,YAA6B,OAA4B;QACrD,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAqB;IAEzD,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAuB;QACvC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;IAClF,CAAC;CACJ;AAxBD,wDAwBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./WebdriverIOLocator.js"), exports);
|
|
18
|
+
__exportStar(require("./WebdriverIORootLocator.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,8DAA4C"}
|
package/package.json
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@serenity-js/webdriverio-8",
|
|
3
|
+
"version": "3.31.0",
|
|
4
|
+
"description": "Adapter that integrates @serenity-js/web with WebdriverIO 8, enabling Serenity/JS reporting and using the Screenplay Pattern to write web and mobile test scenarios",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Jan Molak",
|
|
7
|
+
"email": "jan.molak@smartcodeltd.co.uk",
|
|
8
|
+
"url": "https://janmolak.com"
|
|
9
|
+
},
|
|
10
|
+
"funding": {
|
|
11
|
+
"url": "https://github.com/sponsors/serenity-js"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://serenity-js.org",
|
|
14
|
+
"license": "Apache-2.0",
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public",
|
|
17
|
+
"provenance": true
|
|
18
|
+
},
|
|
19
|
+
"main": "./lib/index.js",
|
|
20
|
+
"types": "./lib/index.d.ts",
|
|
21
|
+
"type": "module",
|
|
22
|
+
"module": "./esm/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": [
|
|
25
|
+
{
|
|
26
|
+
"types": "./esm/index.d.ts",
|
|
27
|
+
"import": "./esm/index.js",
|
|
28
|
+
"require": "./lib/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./lib/index.js"
|
|
31
|
+
],
|
|
32
|
+
"./package.json": "./package.json"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"automation",
|
|
36
|
+
"browser",
|
|
37
|
+
"e2e",
|
|
38
|
+
"end-to-end",
|
|
39
|
+
"integration",
|
|
40
|
+
"serenity",
|
|
41
|
+
"serenity-js",
|
|
42
|
+
"screenplay",
|
|
43
|
+
"screenplay-pattern",
|
|
44
|
+
"runner",
|
|
45
|
+
"ui",
|
|
46
|
+
"frontend",
|
|
47
|
+
"bdd",
|
|
48
|
+
"tdd",
|
|
49
|
+
"test",
|
|
50
|
+
"testing",
|
|
51
|
+
"webdriverio",
|
|
52
|
+
"wdio",
|
|
53
|
+
"wdio-reporter"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"clean": "rimraf target",
|
|
57
|
+
"test": "c8 npm run test:no-coverage",
|
|
58
|
+
"test:no-coverage": "mocha --config .mocharc.yml 'spec/**/*.spec.*'",
|
|
59
|
+
"compile": "npm run compile:clean && npm run compile:esm && npm run compile:cjs && npm run compile:cjs-package",
|
|
60
|
+
"compile:clean": "rimraf lib esm",
|
|
61
|
+
"compile:esm": "tsc --project tsconfig-esm.build.json",
|
|
62
|
+
"compile:cjs": "tsc --project tsconfig-cjs.build.json",
|
|
63
|
+
"compile:cjs-package": "node -e \"require('fs').writeFileSync('lib/package.json', '{ \\\"type\\\": \\\"commonjs\\\" }')\""
|
|
64
|
+
},
|
|
65
|
+
"repository": {
|
|
66
|
+
"type": "git",
|
|
67
|
+
"url": "https://github.com/serenity-js/serenity-js.git",
|
|
68
|
+
"directory": "packages/webdriverio-8"
|
|
69
|
+
},
|
|
70
|
+
"bugs": {
|
|
71
|
+
"url": "https://github.com/serenity-js/serenity-js/issues"
|
|
72
|
+
},
|
|
73
|
+
"engines": {
|
|
74
|
+
"node": "^18.12 || ^20 || ^22"
|
|
75
|
+
},
|
|
76
|
+
"dependencies": {
|
|
77
|
+
"@serenity-js/core": "3.31.0",
|
|
78
|
+
"@serenity-js/rest": "3.31.0",
|
|
79
|
+
"@serenity-js/web": "3.31.0",
|
|
80
|
+
"@wdio/reporter": "8.40.6",
|
|
81
|
+
"deepmerge": "4.3.1",
|
|
82
|
+
"tiny-types": "1.23.0"
|
|
83
|
+
},
|
|
84
|
+
"peerDependencies": {
|
|
85
|
+
"@serenity-js/cucumber": "^3.0.0",
|
|
86
|
+
"@serenity-js/jasmine": "^3.0.0",
|
|
87
|
+
"@serenity-js/mocha": "^3.0.0",
|
|
88
|
+
"@wdio/cli": "^8.40.6",
|
|
89
|
+
"webdriverio": "^8.40.6"
|
|
90
|
+
},
|
|
91
|
+
"peerDependenciesMeta": {
|
|
92
|
+
"@serenity-js/cucumber": {
|
|
93
|
+
"optional": true
|
|
94
|
+
},
|
|
95
|
+
"@serenity-js/jasmine": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@serenity-js/mocha": {
|
|
99
|
+
"optional": true
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"devDependencies": {
|
|
103
|
+
"@integration/testing-tools": "3.0.0",
|
|
104
|
+
"@types/mocha": "10.0.10",
|
|
105
|
+
"@wdio/cli": "8.40.6",
|
|
106
|
+
"@wdio/devtools-service": "8.40.2",
|
|
107
|
+
"@wdio/dot-reporter": "8.40.6",
|
|
108
|
+
"@wdio/local-runner": "8.40.6",
|
|
109
|
+
"@wdio/spec-reporter": "8.40.6",
|
|
110
|
+
"@wdio/types": "8.40.6",
|
|
111
|
+
"axios": "1.7.9",
|
|
112
|
+
"c8": "10.1.2",
|
|
113
|
+
"cross-env": "7.0.3",
|
|
114
|
+
"mocha": "10.8.2",
|
|
115
|
+
"mocha-multi": "1.1.7",
|
|
116
|
+
"mocha-testdata": "1.2.0",
|
|
117
|
+
"puppeteer-core": "20.9.0",
|
|
118
|
+
"start-server-and-test": "2.0.8",
|
|
119
|
+
"webdriverio": "8.40.6"
|
|
120
|
+
},
|
|
121
|
+
"gitHead": "fb557dbbcd41994306877ae4f464e5d8b38772ff"
|
|
122
|
+
}
|