@serenity-js/webdriverio 3.4.2 → 3.6.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 +27 -0
- package/esm/adapter/TestRunnerLoader.d.ts +4 -3
- package/esm/adapter/TestRunnerLoader.d.ts.map +1 -1
- package/esm/adapter/TestRunnerLoader.js.map +1 -1
- package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts +5 -4
- package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -1
- package/esm/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +4 -4
- package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -1
- package/esm/adapter/WebdriverIONotifier.d.ts +4 -4
- package/esm/adapter/WebdriverIONotifier.d.ts.map +1 -1
- package/esm/adapter/WebdriverIONotifier.js +2 -3
- package/esm/adapter/WebdriverIONotifier.js.map +1 -1
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts +1 -1
- package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -1
- package/esm/adapter/reporter/OutputStreamBuffer.d.ts +1 -1
- package/esm/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -1
- package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts +4 -4
- package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -1
- package/esm/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -1
- package/esm/adapter/reporter/ProvidesWriteStream.d.ts +1 -1
- package/esm/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -1
- package/esm/adapter/reporter/TagPrinter.d.ts +1 -1
- package/esm/adapter/reporter/TagPrinter.d.ts.map +1 -1
- package/esm/adapter/reporter/TagPrinter.js.map +1 -1
- package/esm/config/WebdriverIOConfig.d.ts +1 -1
- package/esm/config/WebdriverIOConfig.d.ts.map +1 -1
- package/esm/index.d.ts +4 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +1 -4
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -1
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +1 -8
- package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -1
- package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts +2 -1
- package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOBrowsingSession.js +3 -1
- package/esm/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -1
- package/esm/screenplay/models/WebdriverIOCookie.d.ts +2 -1
- package/esm/screenplay/models/WebdriverIOCookie.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOCookie.js.map +1 -1
- package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts +1 -1
- package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts +3 -2
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -1
- package/esm/screenplay/models/WebdriverIOPage.d.ts +6 -4
- package/esm/screenplay/models/WebdriverIOPage.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOPage.js +5 -2
- package/esm/screenplay/models/WebdriverIOPage.js.map +1 -1
- package/esm/screenplay/models/WebdriverIOPageElement.d.ts +2 -1
- package/esm/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOPageElement.js.map +1 -1
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +2 -1
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -1
- package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -1
- package/esm/screenplay/models/WebdriverProtocolErrorCode.js +1 -1
- package/esm/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -1
- package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts +12 -2
- package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -1
- package/esm/screenplay/models/locators/WebdriverIOLocator.js +3 -3
- package/esm/screenplay/models/locators/WebdriverIOLocator.js.map +1 -1
- package/lib/adapter/TestRunnerLoader.d.ts +4 -3
- package/lib/adapter/TestRunnerLoader.d.ts.map +1 -1
- package/lib/adapter/TestRunnerLoader.js.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts +5 -4
- package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +4 -4
- package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -1
- package/lib/adapter/WebdriverIONotifier.d.ts +4 -4
- package/lib/adapter/WebdriverIONotifier.d.ts.map +1 -1
- package/lib/adapter/WebdriverIONotifier.js +1 -1
- package/lib/adapter/WebdriverIONotifier.js.map +1 -1
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts +1 -1
- package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -1
- package/lib/adapter/reporter/OutputStreamBuffer.d.ts +1 -1
- package/lib/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -1
- package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts +4 -4
- package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -1
- package/lib/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -1
- package/lib/adapter/reporter/ProvidesWriteStream.d.ts +1 -1
- package/lib/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -1
- package/lib/adapter/reporter/TagPrinter.d.ts +1 -1
- package/lib/adapter/reporter/TagPrinter.d.ts.map +1 -1
- package/lib/adapter/reporter/TagPrinter.js.map +1 -1
- package/lib/config/WebdriverIOConfig.d.ts +1 -1
- package/lib/config/WebdriverIOConfig.d.ts.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +1 -4
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -1
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +1 -8
- package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts +2 -1
- package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOBrowsingSession.js +3 -1
- package/lib/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOCookie.d.ts +2 -1
- package/lib/screenplay/models/WebdriverIOCookie.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts +1 -1
- package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts +3 -2
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOPage.d.ts +6 -4
- package/lib/screenplay/models/WebdriverIOPage.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOPage.js +3 -0
- package/lib/screenplay/models/WebdriverIOPage.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOPageElement.d.ts +2 -1
- package/lib/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -1
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +2 -1
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -1
- package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -1
- package/lib/screenplay/models/WebdriverProtocolErrorCode.js +1 -1
- package/lib/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -1
- package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +12 -2
- package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -1
- package/lib/screenplay/models/locators/WebdriverIOLocator.js +5 -4
- package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -1
- package/package.json +5 -5
- package/src/adapter/TestRunnerLoader.ts +4 -3
- package/src/adapter/WebdriverIOFrameworkAdapter.ts +11 -7
- package/src/adapter/WebdriverIOFrameworkAdapterFactory.ts +4 -4
- package/src/adapter/WebdriverIONotifier.ts +9 -6
- package/src/adapter/reporter/BrowserCapabilitiesReporter.ts +2 -2
- package/src/adapter/reporter/OutputStreamBuffer.ts +1 -1
- package/src/adapter/reporter/OutputStreamBufferPrinter.ts +5 -4
- package/src/adapter/reporter/ProvidesWriteStream.ts +1 -1
- package/src/adapter/reporter/TagPrinter.ts +2 -1
- package/src/config/WebdriverIOConfig.ts +1 -1
- package/src/index.ts +4 -4
- package/src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts +2 -10
- package/src/screenplay/models/WebdriverIOBrowsingSession.ts +9 -5
- package/src/screenplay/models/WebdriverIOCookie.ts +2 -1
- package/src/screenplay/models/WebdriverIOErrorHandler.ts +1 -1
- package/src/screenplay/models/WebdriverIOModalDialogHandler.ts +3 -2
- package/src/screenplay/models/WebdriverIOPage.ts +17 -5
- package/src/screenplay/models/WebdriverIOPageElement.ts +3 -2
- package/src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts +2 -1
- package/src/screenplay/models/locators/WebdriverIOLocator.ts +7 -6
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Stage, StageCrewMember } from '@serenity-js/core';
|
|
2
|
+
import { LogicError } from '@serenity-js/core';
|
|
3
|
+
import type { DomainEvent} from '@serenity-js/core/lib/events/index.js';
|
|
4
|
+
import { AsyncOperationAttempted, AsyncOperationCompleted, SceneFinished, SceneStarts, TestRunFinishes, TestSuiteFinished, TestSuiteStarts } from '@serenity-js/core/lib/events/index.js';
|
|
5
|
+
import type {
|
|
6
|
+
Outcome,
|
|
7
|
+
TestSuiteDetails} from '@serenity-js/core/lib/model/index.js';
|
|
3
8
|
import {
|
|
4
9
|
CorrelationId,
|
|
5
10
|
Description,
|
|
@@ -9,16 +14,14 @@ import {
|
|
|
9
14
|
ExecutionIgnored,
|
|
10
15
|
ExecutionSkipped,
|
|
11
16
|
ImplementationPending, Name,
|
|
12
|
-
|
|
13
|
-
ProblemIndication,
|
|
14
|
-
TestSuiteDetails,
|
|
17
|
+
ProblemIndication
|
|
15
18
|
} from '@serenity-js/core/lib/model/index.js';
|
|
16
19
|
import type { Test as testStats } from '@wdio/reporter';
|
|
17
20
|
import type { Capabilities, Frameworks } from '@wdio/types';
|
|
18
21
|
import type { EventEmitter } from 'events';
|
|
19
22
|
import { match } from 'tiny-types';
|
|
20
23
|
|
|
21
|
-
import { WebdriverIOConfig } from '../config/index.js';
|
|
24
|
+
import type { WebdriverIOConfig } from '../config/index.js';
|
|
22
25
|
|
|
23
26
|
// interface Argument {
|
|
24
27
|
// rows?: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Serenity } from '@serenity-js/core';
|
|
1
|
+
import type { Serenity } from '@serenity-js/core';
|
|
2
2
|
import { SceneTagged } from '@serenity-js/core/lib/events/index.js';
|
|
3
|
-
import { Tag } from '@serenity-js/core/lib/model/index.js';
|
|
3
|
+
import type { Tag } from '@serenity-js/core/lib/model/index.js';
|
|
4
4
|
import Reporter from '@wdio/reporter';
|
|
5
5
|
import type { Capabilities, Options, Reporters } from '@wdio/types';
|
|
6
6
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Stage, StageCrewMember } from '@serenity-js/core';
|
|
2
|
-
import { OutputStream } from '@serenity-js/core/lib/adapter/index.js';
|
|
3
|
-
import { DomainEvent
|
|
1
|
+
import type { Stage, StageCrewMember } from '@serenity-js/core';
|
|
2
|
+
import type { OutputStream } from '@serenity-js/core/lib/adapter/index.js';
|
|
3
|
+
import type { DomainEvent} from '@serenity-js/core/lib/events/index.js';
|
|
4
|
+
import { SceneFinished } from '@serenity-js/core/lib/events/index.js';
|
|
4
5
|
|
|
5
|
-
import { OutputStreamBuffer } from './OutputStreamBuffer.js';
|
|
6
|
+
import type { OutputStreamBuffer } from './OutputStreamBuffer.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* @package
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Tag } from '@serenity-js/core/lib/model/index.js';
|
|
2
|
+
import { BrowserTag, PlatformTag } from '@serenity-js/core/lib/model/index.js';
|
|
2
3
|
import type { Capabilities } from '@wdio/types';
|
|
3
4
|
|
|
4
5
|
/**
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { serenity } from '@serenity-js/core';
|
|
2
2
|
import { ModuleLoader, Path } from '@serenity-js/core/lib/io/index.js';
|
|
3
|
-
import { Capabilities } from '@wdio/types';
|
|
4
|
-
import { EventEmitter } from 'events';
|
|
3
|
+
import type { Capabilities } from '@wdio/types';
|
|
4
|
+
import type { EventEmitter } from 'events';
|
|
5
5
|
|
|
6
|
-
import { InitialisesReporters, ProvidesWriteStream } from './adapter/reporter/index.js';
|
|
7
|
-
import { WebdriverIOConfig } from './config/index.js';
|
|
6
|
+
import type { InitialisesReporters, ProvidesWriteStream } from './adapter/reporter/index.js';
|
|
7
|
+
import type { WebdriverIOConfig } from './config/index.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* WebdriverIO Framework Adapter integrates WebdriverIO with Serenity/JS
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BrowseTheWeb } from '@serenity-js/web';
|
|
2
2
|
import type { Browser, Element } from 'webdriverio';
|
|
3
3
|
|
|
4
4
|
import { WebdriverIOBrowsingSession } from '../models/index.js';
|
|
@@ -39,14 +39,6 @@ import { WebdriverIOBrowsingSession } from '../models/index.js';
|
|
|
39
39
|
export class BrowseTheWebWithWebdriverIO extends BrowseTheWeb<Element> {
|
|
40
40
|
|
|
41
41
|
static using(browserInstance: Browser): BrowseTheWebWithWebdriverIO {
|
|
42
|
-
return new BrowseTheWebWithWebdriverIO(browserInstance);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
constructor(protected readonly browser: Browser) {
|
|
46
|
-
super(new WebdriverIOBrowsingSession(browser));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
browserCapabilities(): Promise<BrowserCapabilities> {
|
|
50
|
-
return Promise.resolve(this.browser.capabilities as BrowserCapabilities);
|
|
42
|
+
return new BrowseTheWebWithWebdriverIO(new WebdriverIOBrowsingSession(browserInstance));
|
|
51
43
|
}
|
|
52
44
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LogicError } from '@serenity-js/core';
|
|
2
2
|
import { CorrelationId } from '@serenity-js/core/lib/model/index.js';
|
|
3
|
-
import {
|
|
3
|
+
import type { BrowserCapabilities, ModalDialogHandler } from '@serenity-js/web';
|
|
4
|
+
import { BrowsingSession } from '@serenity-js/web';
|
|
4
5
|
import type { Page } from 'puppeteer-core';
|
|
5
6
|
import type { Browser } from 'webdriverio';
|
|
6
7
|
|
|
@@ -24,7 +25,7 @@ export class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage>
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
async allPages(): Promise<Array<WebdriverIOPage>> {
|
|
28
|
+
override async allPages(): Promise<Array<WebdriverIOPage>> {
|
|
28
29
|
// scan all the active window handles and add any newly opened windows if needed
|
|
29
30
|
const windowHandles: string[] = await this.browser.getWindowHandles();
|
|
30
31
|
|
|
@@ -55,10 +56,9 @@ export class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage>
|
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
/**
|
|
58
|
-
* @override
|
|
59
59
|
* @param page
|
|
60
60
|
*/
|
|
61
|
-
async changeCurrentPageTo(page: WebdriverIOPage): Promise<void> {
|
|
61
|
+
override async changeCurrentPageTo(page: WebdriverIOPage): Promise<void> {
|
|
62
62
|
const currentPage = await this.currentPage();
|
|
63
63
|
|
|
64
64
|
// are we already on this page?
|
|
@@ -121,7 +121,7 @@ export class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage>
|
|
|
121
121
|
return this.currentBrowserPage;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
protected async registerCurrentPage(): Promise<WebdriverIOPage> {
|
|
124
|
+
protected override async registerCurrentPage(): Promise<WebdriverIOPage> {
|
|
125
125
|
const windowHandle = await this.browser.getWindowHandle();
|
|
126
126
|
|
|
127
127
|
const errorHandler = new WebdriverIOErrorHandler();
|
|
@@ -168,4 +168,8 @@ export class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage>
|
|
|
168
168
|
|
|
169
169
|
return page;
|
|
170
170
|
}
|
|
171
|
+
|
|
172
|
+
override browserCapabilities(): Promise<BrowserCapabilities> {
|
|
173
|
+
return Promise.resolve(this.browser.capabilities as BrowserCapabilities);
|
|
174
|
+
}
|
|
171
175
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Timestamp } from '@serenity-js/core';
|
|
2
|
-
import {
|
|
2
|
+
import type { CookieData} from '@serenity-js/web';
|
|
3
|
+
import { Cookie, CookieMissingError } from '@serenity-js/web';
|
|
3
4
|
import { ensure, isDefined } from 'tiny-types';
|
|
4
5
|
import type { Browser } from 'webdriverio';
|
|
5
6
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ModalDialog} from '@serenity-js/web';
|
|
2
|
+
import { AbsentModalDialog, AcceptedModalDialog, DismissedModalDialog, ModalDialogHandler } from '@serenity-js/web';
|
|
2
3
|
import type { Browser } from 'webdriverio';
|
|
3
4
|
|
|
4
|
-
import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
|
|
5
|
+
import type { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
|
|
5
6
|
import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { LogicError } from '@serenity-js/core';
|
|
2
|
-
import { CorrelationId } from '@serenity-js/core/lib/model/index.js';
|
|
3
|
-
import {
|
|
2
|
+
import type { CorrelationId } from '@serenity-js/core/lib/model/index.js';
|
|
3
|
+
import type { Cookie, CookieData, ModalDialogHandler, PageElement, Selector } from '@serenity-js/web';
|
|
4
|
+
import { BrowserWindowClosedError, ByCss, Key, Page, PageElements } from '@serenity-js/web';
|
|
4
5
|
import { URL } from 'url';
|
|
5
6
|
import type { Browser, Element } from 'webdriverio';
|
|
6
7
|
|
|
7
|
-
import { WebdriverIOLocator, WebdriverIORootLocator } from './locators/index.js';
|
|
8
|
-
import { WebdriverIOBrowsingSession } from './WebdriverIOBrowsingSession.js';
|
|
8
|
+
import { WebdriverIOExistingElementLocator, WebdriverIOLocator, WebdriverIORootLocator } from './locators/index.js';
|
|
9
|
+
import type { WebdriverIOBrowsingSession } from './WebdriverIOBrowsingSession.js';
|
|
9
10
|
import { WebdriverIOCookie } from './WebdriverIOCookie.js';
|
|
10
|
-
import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
|
|
11
|
+
import type { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
|
|
11
12
|
import { WebdriverIOPageElement } from './WebdriverIOPageElement.js';
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -34,6 +35,17 @@ export class WebdriverIOPage extends Page<Element> {
|
|
|
34
35
|
);
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
createPageElement(nativeElement: Element): PageElement<Element> {
|
|
39
|
+
return new WebdriverIOPageElement(
|
|
40
|
+
new WebdriverIOExistingElementLocator(
|
|
41
|
+
this.rootLocator,
|
|
42
|
+
new ByCss(String(nativeElement.selector)),
|
|
43
|
+
this.errorHandler,
|
|
44
|
+
nativeElement
|
|
45
|
+
)
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
37
49
|
locate(selector: Selector): PageElement<Element> {
|
|
38
50
|
return new WebdriverIOPageElement(
|
|
39
51
|
new WebdriverIOLocator(this.rootLocator, selector, this.errorHandler)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { LogicError } from '@serenity-js/core';
|
|
2
|
-
import {
|
|
2
|
+
import type { SwitchableOrigin } from '@serenity-js/web';
|
|
3
|
+
import { Key, PageElement, SelectOption } from '@serenity-js/web';
|
|
3
4
|
import * as scripts from '@serenity-js/web/lib/scripts/index.js';
|
|
4
5
|
import type { Browser, Element } from 'webdriverio';
|
|
5
6
|
|
|
6
|
-
import { WebdriverIOLocator } from './locators/index.js';
|
|
7
|
+
import type { WebdriverIOLocator } from './locators/index.js';
|
|
7
8
|
import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { f, LogicError } from '@serenity-js/core';
|
|
2
|
-
import {
|
|
2
|
+
import type { PageElement, RootLocator, Selector } from '@serenity-js/web';
|
|
3
|
+
import { ByCss, ByCssContainingText, ByDeepCss, ById, ByTagName, ByXPath, Locator } from '@serenity-js/web';
|
|
3
4
|
import type { Element } from 'webdriverio';
|
|
4
5
|
|
|
5
|
-
import { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler.js';
|
|
6
|
+
import type { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler.js';
|
|
6
7
|
import { WebdriverIOPageElement } from '../WebdriverIOPageElement.js';
|
|
7
|
-
import { WebdriverIORootLocator } from './WebdriverIORootLocator.js';
|
|
8
|
+
import type { WebdriverIORootLocator } from './WebdriverIORootLocator.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* WebdriverIO-specific implementation of {@apilink Locator}.
|
|
@@ -107,7 +108,7 @@ export class WebdriverIOLocator extends Locator<Element, string> {
|
|
|
107
108
|
|
|
108
109
|
return elements.map(childElement =>
|
|
109
110
|
new WebdriverIOPageElement(
|
|
110
|
-
new
|
|
111
|
+
new WebdriverIOExistingElementLocator(
|
|
111
112
|
this.parent as WebdriverIORootLocator,
|
|
112
113
|
this.selector,
|
|
113
114
|
this.errorHandler,
|
|
@@ -119,9 +120,9 @@ export class WebdriverIOLocator extends Locator<Element, string> {
|
|
|
119
120
|
}
|
|
120
121
|
|
|
121
122
|
/**
|
|
122
|
-
* @
|
|
123
|
+
* @internal
|
|
123
124
|
*/
|
|
124
|
-
class
|
|
125
|
+
export class WebdriverIOExistingElementLocator extends WebdriverIOLocator {
|
|
125
126
|
constructor(
|
|
126
127
|
parentRoot: RootLocator<Element>,
|
|
127
128
|
selector: Selector,
|