webdriverio 7.20.7 → 7.20.8-alpha.504
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/build/cjs/index.d.ts +3 -0
- package/build/cjs/index.d.ts.map +1 -0
- package/build/cjs/index.js +13 -0
- package/build/cjs/package.json +3 -0
- package/build/commands/browser/$$.d.ts +10 -1
- package/build/commands/browser/$$.d.ts.map +1 -1
- package/build/commands/browser/$$.js +16 -9
- package/build/commands/browser/$.js +8 -11
- package/build/commands/browser/action.d.ts +132 -0
- package/build/commands/browser/action.d.ts.map +1 -0
- package/build/commands/browser/action.js +13 -0
- package/build/commands/browser/actions.d.ts +29 -0
- package/build/commands/browser/actions.d.ts.map +1 -0
- package/build/commands/browser/actions.js +30 -0
- package/build/commands/browser/addCommand.d.ts +1 -1
- package/build/commands/browser/addCommand.js +1 -1
- package/build/commands/browser/call.d.ts +7 -5
- package/build/commands/browser/call.d.ts.map +1 -1
- package/build/commands/browser/call.js +8 -9
- package/build/commands/browser/custom$$.js +7 -10
- package/build/commands/browser/custom$.d.ts +1 -1
- package/build/commands/browser/custom$.js +6 -9
- package/build/commands/browser/debug.js +8 -14
- package/build/commands/browser/deleteCookies.d.ts +3 -3
- package/build/commands/browser/deleteCookies.js +4 -7
- package/build/commands/browser/execute.d.ts +2 -2
- package/build/commands/browser/execute.js +5 -8
- package/build/commands/browser/executeAsync.js +3 -6
- package/build/commands/browser/getCookies.d.ts +2 -2
- package/build/commands/browser/getCookies.js +3 -6
- package/build/commands/browser/getPuppeteer.d.ts +1 -1
- package/build/commands/browser/getPuppeteer.d.ts.map +1 -1
- package/build/commands/browser/getPuppeteer.js +14 -21
- package/build/commands/browser/getWindowSize.js +3 -6
- package/build/commands/browser/keys.d.ts +20 -10
- package/build/commands/browser/keys.d.ts.map +1 -1
- package/build/commands/browser/keys.js +29 -24
- package/build/commands/browser/mock.d.ts +5 -4
- package/build/commands/browser/mock.d.ts.map +1 -1
- package/build/commands/browser/mock.js +16 -22
- package/build/commands/browser/mockClearAll.js +5 -11
- package/build/commands/browser/mockRestoreAll.js +5 -11
- package/build/commands/browser/newWindow.js +5 -11
- package/build/commands/browser/pause.js +1 -4
- package/build/commands/browser/react$$.d.ts.map +1 -1
- package/build/commands/browser/react$$.js +16 -17
- package/build/commands/browser/react$.d.ts.map +1 -1
- package/build/commands/browser/react$.js +13 -14
- package/build/commands/browser/reloadSession.js +5 -12
- package/build/commands/browser/savePDF.d.ts +14 -14
- package/build/commands/browser/savePDF.js +21 -27
- package/build/commands/browser/saveRecordingScreen.js +6 -12
- package/build/commands/browser/saveScreenshot.js +6 -12
- package/build/commands/browser/scroll.d.ts +25 -0
- package/build/commands/browser/scroll.d.ts.map +1 -0
- package/build/commands/browser/scroll.js +41 -0
- package/build/commands/browser/setCookies.d.ts +1 -1
- package/build/commands/browser/setCookies.d.ts.map +1 -1
- package/build/commands/browser/setCookies.js +5 -7
- package/build/commands/browser/setTimeout.js +1 -4
- package/build/commands/browser/setWindowSize.js +3 -6
- package/build/commands/browser/switchWindow.js +1 -4
- package/build/commands/browser/throttle.js +3 -6
- package/build/commands/browser/touchAction.d.ts +1 -1
- package/build/commands/browser/touchAction.d.ts.map +1 -1
- package/build/commands/browser/touchAction.js +3 -6
- package/build/commands/browser/uploadFile.d.ts +1 -1
- package/build/commands/browser/uploadFile.d.ts.map +1 -1
- package/build/commands/browser/uploadFile.js +10 -15
- package/build/commands/browser/url.js +3 -6
- package/build/commands/browser/waitUntil.d.ts +1 -2
- package/build/commands/browser/waitUntil.d.ts.map +1 -1
- package/build/commands/browser/waitUntil.js +4 -11
- package/build/commands/browser.d.ts +37 -69
- package/build/commands/browser.d.ts.map +1 -1
- package/build/commands/browser.js +37 -44
- package/build/commands/constant.d.ts +1 -1
- package/build/commands/constant.d.ts.map +1 -1
- package/build/commands/constant.js +6 -12
- package/build/commands/element/$$.d.ts +1 -1
- package/build/commands/element/$$.d.ts.map +1 -1
- package/build/commands/element/$$.js +2 -7
- package/build/commands/element/$.d.ts +1 -1
- package/build/commands/element/$.d.ts.map +1 -1
- package/build/commands/element/$.js +2 -7
- package/build/commands/element/addValue.d.ts +10 -14
- package/build/commands/element/addValue.d.ts.map +1 -1
- package/build/commands/element/addValue.js +23 -27
- package/build/commands/element/clearValue.d.ts +1 -1
- package/build/commands/element/clearValue.js +2 -5
- package/build/commands/element/click.d.ts +1 -1
- package/build/commands/element/click.d.ts.map +1 -1
- package/build/commands/element/click.js +19 -34
- package/build/commands/element/custom$$.js +9 -11
- package/build/commands/element/custom$.js +8 -10
- package/build/commands/element/doubleClick.d.ts.map +1 -1
- package/build/commands/element/doubleClick.js +11 -17
- package/build/commands/element/dragAndDrop.d.ts.map +1 -1
- package/build/commands/element/dragAndDrop.js +13 -19
- package/build/commands/element/getAttribute.js +1 -4
- package/build/commands/element/getCSSProperty.d.ts +1 -1
- package/build/commands/element/getCSSProperty.d.ts.map +1 -1
- package/build/commands/element/getCSSProperty.js +7 -13
- package/build/commands/element/getComputedLabel.js +1 -4
- package/build/commands/element/getComputedRole.js +1 -4
- package/build/commands/element/getHTML.js +7 -13
- package/build/commands/element/getLocation.js +3 -5
- package/build/commands/element/getProperty.d.ts +5 -5
- package/build/commands/element/getProperty.d.ts.map +1 -1
- package/build/commands/element/getProperty.js +5 -11
- package/build/commands/element/getSize.js +3 -5
- package/build/commands/element/getTagName.js +1 -4
- package/build/commands/element/getText.js +1 -4
- package/build/commands/element/getValue.js +1 -4
- package/build/commands/element/isClickable.d.ts.map +1 -1
- package/build/commands/element/isClickable.js +10 -13
- package/build/commands/element/isDisplayed.js +9 -16
- package/build/commands/element/isDisplayedInViewport.js +7 -13
- package/build/commands/element/isEnabled.js +1 -4
- package/build/commands/element/isEqual.d.ts.map +1 -1
- package/build/commands/element/isEqual.js +9 -9
- package/build/commands/element/isExisting.js +1 -4
- package/build/commands/element/isFocused.js +7 -13
- package/build/commands/element/isSelected.js +1 -4
- package/build/commands/element/moveTo.d.ts.map +1 -1
- package/build/commands/element/moveTo.js +8 -13
- package/build/commands/element/nextElement.js +2 -5
- package/build/commands/element/parentElement.js +2 -5
- package/build/commands/element/previousElement.js +2 -5
- package/build/commands/element/react$$.d.ts.map +1 -1
- package/build/commands/element/react$$.js +16 -16
- package/build/commands/element/react$.d.ts.map +1 -1
- package/build/commands/element/react$.js +15 -14
- package/build/commands/element/saveScreenshot.js +6 -12
- package/build/commands/element/scrollIntoView.d.ts +4 -2
- package/build/commands/element/scrollIntoView.d.ts.map +1 -1
- package/build/commands/element/scrollIntoView.js +33 -12
- package/build/commands/element/selectByAttribute.js +3 -6
- package/build/commands/element/selectByIndex.js +3 -6
- package/build/commands/element/selectByVisibleText.js +3 -6
- package/build/commands/element/setValue.d.ts +13 -14
- package/build/commands/element/setValue.d.ts.map +1 -1
- package/build/commands/element/setValue.js +14 -17
- package/build/commands/element/shadow$$.d.ts +1 -1
- package/build/commands/element/shadow$$.d.ts.map +1 -1
- package/build/commands/element/shadow$$.js +3 -6
- package/build/commands/element/shadow$.js +3 -6
- package/build/commands/element/touchAction.js +3 -6
- package/build/commands/element/waitForClickable.js +1 -4
- package/build/commands/element/waitForDisplayed.js +1 -4
- package/build/commands/element/waitForEnabled.js +1 -4
- package/build/commands/element/waitForExist.js +1 -4
- package/build/commands/element/waitUntil.d.ts +2 -3
- package/build/commands/element/waitUntil.d.ts.map +1 -1
- package/build/commands/element/waitUntil.js +3 -9
- package/build/commands/element.d.ts +49 -99
- package/build/commands/element.d.ts.map +1 -1
- package/build/commands/element.js +49 -63
- package/build/constants.d.ts +67 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +105 -12
- package/build/index.d.ts +65 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +48 -86
- package/build/middlewares.d.ts +1 -1
- package/build/middlewares.js +11 -19
- package/build/multiremote.js +18 -24
- package/build/protocol-stub.d.ts.map +1 -1
- package/build/protocol-stub.js +4 -6
- package/build/scripts/getHTML.js +1 -4
- package/build/scripts/getProperty.d.ts +5 -5
- package/build/scripts/getProperty.d.ts.map +1 -1
- package/build/scripts/getProperty.js +1 -4
- package/build/scripts/isElementClickable.js +1 -4
- package/build/scripts/isElementDisplayed.js +2 -5
- package/build/scripts/isElementInViewport.js +1 -4
- package/build/scripts/isFocused.js +1 -4
- package/build/scripts/newWindow.js +1 -4
- package/build/scripts/resq.js +3 -9
- package/build/scripts/shadowFnFactory.js +2 -6
- package/build/types.d.ts +5 -9
- package/build/types.d.ts.map +1 -1
- package/build/types.js +1 -2
- package/build/utils/SevereServiceError.js +1 -4
- package/build/utils/Timer.d.ts.map +1 -1
- package/build/utils/Timer.js +13 -29
- package/build/utils/actions/base.d.ts +32 -0
- package/build/utils/actions/base.d.ts.map +1 -0
- package/build/utils/actions/base.js +66 -0
- package/build/utils/actions/index.d.ts +6 -0
- package/build/utils/actions/index.d.ts.map +1 -0
- package/build/utils/actions/index.js +5 -0
- package/build/utils/actions/key.d.ts +15 -0
- package/build/utils/actions/key.d.ts.map +1 -0
- package/build/utils/actions/key.js +22 -0
- package/build/utils/actions/pointer.d.ts +62 -0
- package/build/utils/actions/pointer.d.ts.map +1 -0
- package/build/utils/actions/pointer.js +76 -0
- package/build/utils/actions/wheel.d.ts +36 -0
- package/build/utils/actions/wheel.d.ts.map +1 -0
- package/build/utils/actions/wheel.js +20 -0
- package/build/utils/detectBackend.d.ts +1 -1
- package/build/utils/detectBackend.d.ts.map +1 -1
- package/build/utils/detectBackend.js +3 -7
- package/build/utils/findStrategy.d.ts.map +1 -1
- package/build/utils/findStrategy.js +50 -19
- package/build/utils/getElementObject.d.ts +1 -1
- package/build/utils/getElementObject.d.ts.map +1 -1
- package/build/utils/getElementObject.js +51 -32
- package/build/utils/implicitWait.js +3 -9
- package/build/utils/index.d.ts +8 -7
- package/build/utils/index.d.ts.map +1 -1
- package/build/utils/index.js +125 -148
- package/build/utils/interception/devtools.d.ts +1 -1
- package/build/utils/interception/devtools.d.ts.map +1 -1
- package/build/utils/interception/devtools.js +17 -36
- package/build/utils/interception/index.d.ts +2 -2
- package/build/utils/interception/index.d.ts.map +1 -1
- package/build/utils/interception/index.js +10 -13
- package/build/utils/interception/types.d.ts +1 -1
- package/build/utils/interception/types.d.ts.map +1 -1
- package/build/utils/interception/types.js +1 -2
- package/build/utils/interception/webdriver.d.ts +1 -1
- package/build/utils/interception/webdriver.d.ts.map +1 -1
- package/build/utils/interception/webdriver.js +6 -11
- package/build/utils/refetchElement.js +3 -9
- package/package.json +27 -17
- package/async.d.ts +0 -24
- package/sync.d.ts +0 -24
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare type ActionType = 'key' | 'pointer' | 'wheel';
|
|
2
|
+
export declare type KeyActionType = 'mouse' | 'pen' | 'touch';
|
|
3
|
+
export interface ActionParameters {
|
|
4
|
+
pointerType?: KeyActionType;
|
|
5
|
+
}
|
|
6
|
+
export interface BaseActionParams {
|
|
7
|
+
id?: string;
|
|
8
|
+
parameters?: ActionParameters;
|
|
9
|
+
}
|
|
10
|
+
export default class BaseAction {
|
|
11
|
+
#private;
|
|
12
|
+
protected instance: WebdriverIO.Browser;
|
|
13
|
+
protected sequence: any[];
|
|
14
|
+
constructor(instance: WebdriverIO.Browser, type: ActionType, params?: BaseActionParams);
|
|
15
|
+
toJSON(): {
|
|
16
|
+
id: string;
|
|
17
|
+
type: ActionType;
|
|
18
|
+
parameters: ActionParameters;
|
|
19
|
+
actions: any[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Inserts a pause action for the specified device, ensuring it idles for a tick.
|
|
23
|
+
* @param duration idle time of tick
|
|
24
|
+
*/
|
|
25
|
+
pause(duration: number): this;
|
|
26
|
+
/**
|
|
27
|
+
* Perform action sequence
|
|
28
|
+
* @param skipRelease set to true if `releaseActions` command should not be invoked
|
|
29
|
+
*/
|
|
30
|
+
perform(skipRelease?: boolean): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/base.ts"],"names":[],"mappings":"AAEA,oBAAY,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAA;AACpD,oBAAY,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAA;AACrD,MAAM,WAAW,gBAAgB;IAC7B,WAAW,CAAC,EAAE,aAAa,CAAA;CAC9B;AACD,MAAM,WAAW,gBAAgB;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAChC;AAID,MAAM,CAAC,OAAO,OAAO,UAAU;;IAQvB,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO;IAH3C,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAK;gBAGhB,QAAQ,EAAE,WAAW,CAAC,OAAO,EACvC,IAAI,EAAE,UAAU,EAChB,MAAM,CAAC,EAAE,gBAAgB;IAQ7B,MAAM;;;;;;IASN;;;OAGG;IACH,KAAK,CAAE,QAAQ,EAAE,MAAM;IAKvB;;;OAGG;IACG,OAAO,CAAE,WAAW,UAAQ;CAiCrC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ELEMENT_KEY } from '../../constants.js';
|
|
2
|
+
let actionIds = 0;
|
|
3
|
+
export default class BaseAction {
|
|
4
|
+
instance;
|
|
5
|
+
#id;
|
|
6
|
+
#type;
|
|
7
|
+
#parameters;
|
|
8
|
+
#instance;
|
|
9
|
+
sequence = [];
|
|
10
|
+
constructor(instance, type, params) {
|
|
11
|
+
this.instance = instance;
|
|
12
|
+
this.#instance = instance;
|
|
13
|
+
this.#id = params?.id || `action${++actionIds}`;
|
|
14
|
+
this.#type = type;
|
|
15
|
+
this.#parameters = params?.parameters || {};
|
|
16
|
+
}
|
|
17
|
+
toJSON() {
|
|
18
|
+
return {
|
|
19
|
+
id: this.#id,
|
|
20
|
+
type: this.#type,
|
|
21
|
+
parameters: this.#parameters,
|
|
22
|
+
actions: this.sequence
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Inserts a pause action for the specified device, ensuring it idles for a tick.
|
|
27
|
+
* @param duration idle time of tick
|
|
28
|
+
*/
|
|
29
|
+
pause(duration) {
|
|
30
|
+
this.sequence.push({ type: 'pause', duration });
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Perform action sequence
|
|
35
|
+
* @param skipRelease set to true if `releaseActions` command should not be invoked
|
|
36
|
+
*/
|
|
37
|
+
async perform(skipRelease = false) {
|
|
38
|
+
/**
|
|
39
|
+
* transform chainable / not resolved elements into WDIO elements
|
|
40
|
+
*/
|
|
41
|
+
for (const seq of this.sequence) {
|
|
42
|
+
/**
|
|
43
|
+
* continue if we don't deal with origin or elements within
|
|
44
|
+
* origin at all
|
|
45
|
+
*/
|
|
46
|
+
if (!seq.origin || typeof seq.origin === 'string') {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* resolve promise element
|
|
51
|
+
*/
|
|
52
|
+
if (typeof seq.origin.then === 'function') {
|
|
53
|
+
await seq.origin.waitForExist();
|
|
54
|
+
seq.origin = await seq.origin;
|
|
55
|
+
}
|
|
56
|
+
if (!seq.origin[ELEMENT_KEY]) {
|
|
57
|
+
throw new Error(`Couldn't find element for "${seq.type}" action sequence`);
|
|
58
|
+
}
|
|
59
|
+
seq.origin = { [ELEMENT_KEY]: seq.origin[ELEMENT_KEY] };
|
|
60
|
+
}
|
|
61
|
+
await this.#instance.performActions([this.toJSON()]);
|
|
62
|
+
if (!skipRelease) {
|
|
63
|
+
await this.#instance.releaseActions();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AACnD,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import BaseAction, { BaseActionParams } from './base.js';
|
|
2
|
+
export default class KeyAction extends BaseAction {
|
|
3
|
+
constructor(instance: WebdriverIO.Browser, params?: BaseActionParams);
|
|
4
|
+
/**
|
|
5
|
+
* Generates a key up action.
|
|
6
|
+
* @param value key value
|
|
7
|
+
*/
|
|
8
|
+
up(value: string): this;
|
|
9
|
+
/**
|
|
10
|
+
* Generates a key down action.
|
|
11
|
+
* @param value key value
|
|
12
|
+
*/
|
|
13
|
+
down(value: string): this;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/key.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAExD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,UAAU;gBAChC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,gBAAgB;IAIrE;;;OAGG;IACH,EAAE,CAAE,KAAK,EAAE,MAAM;IAKjB;;;OAGG;IACH,IAAI,CAAE,KAAK,EAAE,MAAM;CAItB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import BaseAction from './base.js';
|
|
2
|
+
export default class KeyAction extends BaseAction {
|
|
3
|
+
constructor(instance, params) {
|
|
4
|
+
super(instance, 'key', params);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Generates a key up action.
|
|
8
|
+
* @param value key value
|
|
9
|
+
*/
|
|
10
|
+
up(value) {
|
|
11
|
+
this.sequence.push({ type: 'keyUp', value });
|
|
12
|
+
return this;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Generates a key down action.
|
|
16
|
+
* @param value key value
|
|
17
|
+
*/
|
|
18
|
+
down(value) {
|
|
19
|
+
this.sequence.push({ type: 'keyDown', value });
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ElementReference } from '@wdio/protocols';
|
|
2
|
+
import BaseAction, { BaseActionParams } from './base.js';
|
|
3
|
+
import type { ChainablePromiseElement } from '../../types';
|
|
4
|
+
export declare type ButtonNames = 'left' | 'middle' | 'right';
|
|
5
|
+
export declare type Button = 0 | 1 | 2;
|
|
6
|
+
export declare type Origin = 'pointer' | 'viewport';
|
|
7
|
+
interface PointerActionUpParams {
|
|
8
|
+
/**
|
|
9
|
+
* The button to press (e.g. 0 for left, 1 for middle or 2 for right)
|
|
10
|
+
* @default 0
|
|
11
|
+
*/
|
|
12
|
+
button: Button;
|
|
13
|
+
}
|
|
14
|
+
declare const PARAM_DEFAULTS: {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
pressure: number;
|
|
18
|
+
tangentialPressure: number;
|
|
19
|
+
tiltX: number;
|
|
20
|
+
tiltY: number;
|
|
21
|
+
twist: number;
|
|
22
|
+
altitudeAngle: number;
|
|
23
|
+
azimuthAngle: number;
|
|
24
|
+
button: Button;
|
|
25
|
+
};
|
|
26
|
+
declare const MOVE_PARAM_DEFAULTS: {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
duration: number;
|
|
30
|
+
origin: ElementReference | ChainablePromiseElement<WebdriverIO.Element> | Origin;
|
|
31
|
+
};
|
|
32
|
+
declare type PointerActionParams = Partial<typeof PARAM_DEFAULTS> & Partial<PointerActionUpParams>;
|
|
33
|
+
declare type PointerActionMoveParams = Partial<typeof MOVE_PARAM_DEFAULTS> & PointerActionParams;
|
|
34
|
+
export default class PointerAction extends BaseAction {
|
|
35
|
+
constructor(instance: WebdriverIO.Browser, params?: BaseActionParams);
|
|
36
|
+
/**
|
|
37
|
+
* Creates an action for moving the pointer `x` and `y` pixels from the specified
|
|
38
|
+
* `origin`. The `origin` may be defined as the pointers current position (e.g. "pointer"),
|
|
39
|
+
* the viewport (e.g. "viewport") or the center of a specific element.
|
|
40
|
+
* @param params PointerActionMoveParams
|
|
41
|
+
*/
|
|
42
|
+
move(params: PointerActionMoveParams): PointerAction;
|
|
43
|
+
move(x: number, y: number): PointerAction;
|
|
44
|
+
/**
|
|
45
|
+
* Creates an action to release a single key.
|
|
46
|
+
* @param params PointerActionUpParams
|
|
47
|
+
*/
|
|
48
|
+
up(button?: ButtonNames): PointerAction;
|
|
49
|
+
up(params?: PointerActionUpParams): PointerAction;
|
|
50
|
+
/**
|
|
51
|
+
* Creates an action to press a single key
|
|
52
|
+
* @param params PointerActionParams
|
|
53
|
+
*/
|
|
54
|
+
down(button?: ButtonNames): PointerAction;
|
|
55
|
+
down(params?: PointerActionParams): PointerAction;
|
|
56
|
+
/**
|
|
57
|
+
* An action that cancels this pointer's current input.
|
|
58
|
+
*/
|
|
59
|
+
cancel(): this;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=pointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/pointer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,UAAU,EAAE,EAAE,gBAAgB,EAAiB,MAAM,WAAW,CAAA;AACvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE1D,oBAAY,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AACrD,oBAAY,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC9B,oBAAY,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;AAM3C,UAAU,qBAAqB;IAC3B;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;CACjB;AAKD,QAAA,MAAM,cAAc;;;;;;;;;;;CAWnB,CAAA;AACD,QAAA,MAAM,mBAAmB;;;;;CAKxB,CAAA;AAED,aAAK,mBAAmB,GAAG,OAAO,CAAC,OAAO,cAAc,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAC1F,aAAK,uBAAuB,GAAG,OAAO,CAAC,OAAO,mBAAmB,CAAC,GAAG,mBAAmB,CAAA;AAExF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;gBACpC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAE,gBAAqB;IAQzE;;;;;OAKG;IACH,IAAI,CAAE,MAAM,EAAE,uBAAuB,GAAG,aAAa;IACrD,IAAI,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa;IAoB1C;;;OAGG;IACH,EAAE,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa;IACxC,EAAE,CAAE,MAAM,CAAC,EAAE,qBAAqB,GAAG,aAAa;IAWlD;;;OAGG;IACH,IAAI,CAAE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa;IAC1C,IAAI,CAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,aAAa;IAalD;;OAEG;IACH,MAAM;CAIT"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import BaseAction from './base.js';
|
|
2
|
+
const ORIGIN_DEFAULT = 'viewport';
|
|
3
|
+
const BUTTON_DEFAULT = 0;
|
|
4
|
+
const POINTER_TYPE_DEFAULT = 'mouse';
|
|
5
|
+
const UP_PARAM_DEFAULTS = {
|
|
6
|
+
button: BUTTON_DEFAULT
|
|
7
|
+
};
|
|
8
|
+
const PARAM_DEFAULTS = {
|
|
9
|
+
...UP_PARAM_DEFAULTS,
|
|
10
|
+
width: 0,
|
|
11
|
+
height: 0,
|
|
12
|
+
pressure: 0,
|
|
13
|
+
tangentialPressure: 0,
|
|
14
|
+
tiltX: 0,
|
|
15
|
+
tiltY: 0,
|
|
16
|
+
twist: 0,
|
|
17
|
+
altitudeAngle: 0,
|
|
18
|
+
azimuthAngle: 0
|
|
19
|
+
};
|
|
20
|
+
const MOVE_PARAM_DEFAULTS = {
|
|
21
|
+
x: 0,
|
|
22
|
+
y: 0,
|
|
23
|
+
duration: 100,
|
|
24
|
+
origin: ORIGIN_DEFAULT
|
|
25
|
+
};
|
|
26
|
+
export default class PointerAction extends BaseAction {
|
|
27
|
+
constructor(instance, params = {}) {
|
|
28
|
+
if (!params.parameters) {
|
|
29
|
+
params.parameters = { pointerType: POINTER_TYPE_DEFAULT };
|
|
30
|
+
}
|
|
31
|
+
super(instance, 'pointer', params);
|
|
32
|
+
}
|
|
33
|
+
move(params = {}, y) {
|
|
34
|
+
const seq = {
|
|
35
|
+
type: 'pointerMove',
|
|
36
|
+
// default params
|
|
37
|
+
...PARAM_DEFAULTS,
|
|
38
|
+
...UP_PARAM_DEFAULTS,
|
|
39
|
+
...MOVE_PARAM_DEFAULTS,
|
|
40
|
+
};
|
|
41
|
+
if (typeof params === 'number') {
|
|
42
|
+
Object.assign(seq, { x: params, y });
|
|
43
|
+
}
|
|
44
|
+
else if (params) {
|
|
45
|
+
Object.assign(seq, params);
|
|
46
|
+
}
|
|
47
|
+
this.sequence.push(seq);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
up(params = UP_PARAM_DEFAULTS) {
|
|
51
|
+
this.sequence.push({
|
|
52
|
+
type: 'pointerUp',
|
|
53
|
+
button: typeof params === 'string'
|
|
54
|
+
? params === 'right' ? 2 : (params === 'middle' ? 1 : 0)
|
|
55
|
+
: params.button
|
|
56
|
+
});
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
down(params = {}) {
|
|
60
|
+
this.sequence.push({
|
|
61
|
+
type: 'pointerDown',
|
|
62
|
+
...PARAM_DEFAULTS,
|
|
63
|
+
...(typeof params === 'string'
|
|
64
|
+
? { button: params === 'right' ? 2 : (params === 'middle' ? 1 : 0) }
|
|
65
|
+
: params)
|
|
66
|
+
});
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* An action that cancels this pointer's current input.
|
|
71
|
+
*/
|
|
72
|
+
cancel() {
|
|
73
|
+
this.sequence.push({ type: 'pointerCancel' });
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import BaseAction, { BaseActionParams } from './base.js';
|
|
2
|
+
import type { ChainablePromiseElement } from '../../types';
|
|
3
|
+
export interface ScrollParams {
|
|
4
|
+
/**
|
|
5
|
+
* starting x coordinate
|
|
6
|
+
*/
|
|
7
|
+
x: number;
|
|
8
|
+
/**
|
|
9
|
+
* starting y coordinate
|
|
10
|
+
*/
|
|
11
|
+
y: number;
|
|
12
|
+
/**
|
|
13
|
+
* Delta X to scroll to target
|
|
14
|
+
*/
|
|
15
|
+
deltaX: number;
|
|
16
|
+
/**
|
|
17
|
+
* Delta Y to scroll to target
|
|
18
|
+
*/
|
|
19
|
+
deltaY: number;
|
|
20
|
+
/**
|
|
21
|
+
* element origin
|
|
22
|
+
*/
|
|
23
|
+
origin?: WebdriverIO.Element | ChainablePromiseElement<WebdriverIO.Element>;
|
|
24
|
+
/**
|
|
25
|
+
* duration ratio be the ratio of time delta and duration
|
|
26
|
+
*/
|
|
27
|
+
duration: number;
|
|
28
|
+
}
|
|
29
|
+
export default class WheelAction extends BaseAction {
|
|
30
|
+
constructor(instance: WebdriverIO.Browser, params?: BaseActionParams);
|
|
31
|
+
/**
|
|
32
|
+
* Scrolls a page to given coordinates or origin.
|
|
33
|
+
*/
|
|
34
|
+
scroll(params?: Partial<ScrollParams>): this;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=wheel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wheel.d.ts","sourceRoot":"","sources":["../../../src/utils/actions/wheel.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE1D,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IACT;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IACT;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,GAAG,uBAAuB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3E;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACnB;AAUD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;gBACnC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,gBAAgB;IAIpE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;CAIxC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import BaseAction from './base.js';
|
|
2
|
+
const DEFAULT_SCROLL_PARAMS = {
|
|
3
|
+
x: 0,
|
|
4
|
+
y: 0,
|
|
5
|
+
deltaX: 0,
|
|
6
|
+
deltaY: 0,
|
|
7
|
+
duration: 0
|
|
8
|
+
};
|
|
9
|
+
export default class WheelAction extends BaseAction {
|
|
10
|
+
constructor(instance, params) {
|
|
11
|
+
super(instance, 'wheel', params);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Scrolls a page to given coordinates or origin.
|
|
15
|
+
*/
|
|
16
|
+
scroll(params) {
|
|
17
|
+
this.sequence.push({ type: 'scroll', ...DEFAULT_SCROLL_PARAMS, ...params });
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectBackend.d.ts","sourceRoot":"","sources":["../../src/utils/detectBackend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"detectBackend.d.ts","sourceRoot":"","sources":["../../src/utils/detectBackend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAiBxD,UAAU,qBAAqB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAC,kBAAkB,GAAG,YAAY,CAAC,gBAAgB,CAAA;CACjF;AAgBD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,GAAE,qBAA0B;;;;;EAoGxE"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
const DEFAULT_HOSTNAME = '127.0.0.1';
|
|
4
2
|
const DEFAULT_PORT = 4444;
|
|
5
3
|
const DEFAULT_PROTOCOL = 'http';
|
|
@@ -26,8 +24,7 @@ function getSauceEndpoint(region, { isRDC, isVisual } = {}) {
|
|
|
26
24
|
/**
|
|
27
25
|
* helper to detect the Selenium backend according to given capabilities
|
|
28
26
|
*/
|
|
29
|
-
function detectBackend(options = {}) {
|
|
30
|
-
var _a;
|
|
27
|
+
export default function detectBackend(options = {}) {
|
|
31
28
|
let { port, hostname, user, key, protocol, region, headless, path, capabilities } = options;
|
|
32
29
|
/**
|
|
33
30
|
* browserstack
|
|
@@ -60,8 +57,8 @@ function detectBackend(options = {}) {
|
|
|
60
57
|
* For Sauce Labs Legacy RDC we only need to determine if the sauce option has a `testobject_api_key`.
|
|
61
58
|
* Same for Sauce Visual where an apiKey can be passed in through the capabilities (soon to be legacy too).
|
|
62
59
|
*/
|
|
63
|
-
const isRDC = Boolean(!Array.isArray(capabilities) &&
|
|
64
|
-
const isVisual = Boolean(!Array.isArray(capabilities) && capabilities &&
|
|
60
|
+
const isRDC = Boolean(!Array.isArray(capabilities) && capabilities?.testobject_api_key);
|
|
61
|
+
const isVisual = Boolean(!Array.isArray(capabilities) && capabilities && capabilities['sauce:visual']?.apiKey);
|
|
65
62
|
if ((typeof user === 'string' && typeof key === 'string' && key.length === 36) ||
|
|
66
63
|
// Or only RDC or visual
|
|
67
64
|
(isRDC || isVisual)) {
|
|
@@ -116,4 +113,3 @@ function detectBackend(options = {}) {
|
|
|
116
113
|
*/
|
|
117
114
|
return { hostname, port, protocol, path };
|
|
118
115
|
}
|
|
119
|
-
exports.default = detectBackend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findStrategy.d.ts","sourceRoot":"","sources":["../../src/utils/findStrategy.ts"],"names":[],"mappings":"AA4BA,aAAK,gBAAgB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"findStrategy.d.ts","sourceRoot":"","sources":["../../src/utils/findStrategy.ts"],"names":[],"mappings":"AA4BA,aAAK,gBAAgB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AA2F/D,eAAO,MAAM,YAAY,aAAuB,gBAAgB,UAAU,OAAO,aAAa,OAAO;;;CAuKpG,CAAA"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.findStrategy = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const lodash_isplainobject_1 = __importDefault(require("lodash.isplainobject"));
|
|
9
|
-
const aria_query_1 = require("aria-query");
|
|
10
|
-
const constants_1 = require("../constants");
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import isPlainObject from 'lodash.isplainobject';
|
|
3
|
+
import { roleElements } from 'aria-query';
|
|
4
|
+
import { DEEP_SELECTOR, ARIA_SELECTOR } from '../constants.js';
|
|
11
5
|
const DEFAULT_STRATEGY = 'css selector';
|
|
12
6
|
const DIRECT_SELECTOR_REGEXP = /^(id|css selector|xpath|link text|partial link text|name|tag name|class name|-android uiautomator|-android datamatcher|-android viewmatcher|-android viewtag|-ios uiautomation|-ios predicate string|-ios class chain|accessibility id):(.+)/;
|
|
13
7
|
const XPATH_SELECTORS_START = [
|
|
@@ -34,7 +28,7 @@ const defineStrategy = function (selector) {
|
|
|
34
28
|
// in case of "selector" argument is a plain object then .match() will cause
|
|
35
29
|
// an error like "selector.match is not a function"
|
|
36
30
|
// Use '-android datamatcher' or '-android viewmatcher' strategy if selector is a plain object (Android only)
|
|
37
|
-
if ((
|
|
31
|
+
if (isPlainObject(selector)) {
|
|
38
32
|
if (JSON.stringify(selector).indexOf('test.espresso.matcher.ViewMatchers') < 0)
|
|
39
33
|
return '-android datamatcher';
|
|
40
34
|
return '-android viewmatcher';
|
|
@@ -68,9 +62,13 @@ const defineStrategy = function (selector) {
|
|
|
68
62
|
return 'id';
|
|
69
63
|
}
|
|
70
64
|
// use shadow dom selector
|
|
71
|
-
if (stringSelector.startsWith(
|
|
65
|
+
if (stringSelector.startsWith(DEEP_SELECTOR)) {
|
|
72
66
|
return 'shadow';
|
|
73
67
|
}
|
|
68
|
+
// use aria selector
|
|
69
|
+
if (stringSelector.startsWith(ARIA_SELECTOR)) {
|
|
70
|
+
return 'aria';
|
|
71
|
+
}
|
|
74
72
|
// Recursive element search using the UiAutomator library (Android only)
|
|
75
73
|
if (stringSelector.startsWith('android=')) {
|
|
76
74
|
return '-android uiautomator';
|
|
@@ -113,7 +111,7 @@ const defineStrategy = function (selector) {
|
|
|
113
111
|
return 'role';
|
|
114
112
|
}
|
|
115
113
|
};
|
|
116
|
-
const findStrategy = function (selector, isW3C, isMobile) {
|
|
114
|
+
export const findStrategy = function (selector, isW3C, isMobile) {
|
|
117
115
|
const stringSelector = selector;
|
|
118
116
|
let using = DEFAULT_STRATEGY;
|
|
119
117
|
let value = selector;
|
|
@@ -121,7 +119,7 @@ const findStrategy = function (selector, isW3C, isMobile) {
|
|
|
121
119
|
// user has specified locator strategy directly
|
|
122
120
|
case 'directly': {
|
|
123
121
|
const match = stringSelector.match(DIRECT_SELECTOR_REGEXP);
|
|
124
|
-
if (!match
|
|
122
|
+
if (!match) {
|
|
125
123
|
throw new Error('InvalidSelectorStrategy'); // ToDo: move error to wdio-error package
|
|
126
124
|
}
|
|
127
125
|
using = match[1];
|
|
@@ -149,8 +147,43 @@ const findStrategy = function (selector, isW3C, isMobile) {
|
|
|
149
147
|
}
|
|
150
148
|
case 'shadow':
|
|
151
149
|
using = 'shadow';
|
|
152
|
-
value = stringSelector.slice(
|
|
150
|
+
value = stringSelector.slice(DEEP_SELECTOR.length);
|
|
153
151
|
break;
|
|
152
|
+
case 'aria': {
|
|
153
|
+
const label = stringSelector.slice(ARIA_SELECTOR.length);
|
|
154
|
+
const conditions = [
|
|
155
|
+
// aria label is recevied by other element with aria-labelledBy
|
|
156
|
+
// https://www.w3.org/TR/accname-1.1/#step2B
|
|
157
|
+
`.//*[@aria-labelledby=(//*[normalize-space() = "${label}"]/@id)]`,
|
|
158
|
+
// aria label is recevied by other element with aria-labelledBy
|
|
159
|
+
// https://www.w3.org/TR/accname-1.1/#step2B
|
|
160
|
+
`.//*[@aria-describedby=(//*[normalize-space() = "${label}"]/@id)]`,
|
|
161
|
+
// element has direct aria label
|
|
162
|
+
// https://www.w3.org/TR/accname-1.1/#step2C
|
|
163
|
+
`.//*[@aria-label = "${label}"]`,
|
|
164
|
+
// inputs with a label
|
|
165
|
+
// https://www.w3.org/TR/accname-1.1/#step2D
|
|
166
|
+
`.//input[@id = (//label[normalize-space() = "${label}"]/@for)]`,
|
|
167
|
+
// aria label is received by an input placeholder
|
|
168
|
+
// https://www.w3.org/TR/accname-1.1/#step2D
|
|
169
|
+
`.//input[@placeholder="${label}"]`,
|
|
170
|
+
// aria label is received by an input placeholder
|
|
171
|
+
// https://www.w3.org/TR/accname-1.1/#step2D
|
|
172
|
+
`.//input[@aria-placeholder="${label}"]`,
|
|
173
|
+
// aria label is received by its title attribute
|
|
174
|
+
// https://www.w3.org/TR/accname-1.1/#step2D
|
|
175
|
+
`.//*[@title="${label}"]`,
|
|
176
|
+
// images with an alt tag
|
|
177
|
+
// https://www.w3.org/TR/accname-1.1/#step2D
|
|
178
|
+
`.//img[@alt="${label}"]`,
|
|
179
|
+
// aria label is received from element content
|
|
180
|
+
// https://www.w3.org/TR/accname-1.1/#step2G
|
|
181
|
+
`.//*[normalize-space() = "${label}"]`
|
|
182
|
+
];
|
|
183
|
+
using = 'xpath';
|
|
184
|
+
value = `(${conditions.join(' | ')})[1]`;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
154
187
|
case '-android uiautomator': {
|
|
155
188
|
using = '-android uiautomator';
|
|
156
189
|
value = stringSelector.slice(8);
|
|
@@ -219,7 +252,7 @@ const findStrategy = function (selector, isW3C, isMobile) {
|
|
|
219
252
|
}
|
|
220
253
|
case '-image': {
|
|
221
254
|
using = '-image';
|
|
222
|
-
value =
|
|
255
|
+
value = fs.readFileSync(stringSelector, { encoding: 'base64' });
|
|
223
256
|
break;
|
|
224
257
|
}
|
|
225
258
|
case 'role': {
|
|
@@ -234,11 +267,9 @@ const findStrategy = function (selector, isW3C, isMobile) {
|
|
|
234
267
|
}
|
|
235
268
|
return { using, value };
|
|
236
269
|
};
|
|
237
|
-
exports.findStrategy = findStrategy;
|
|
238
270
|
const createRoleBaseXpathSelector = (role) => {
|
|
239
|
-
var _a;
|
|
240
271
|
const locatorArr = [];
|
|
241
|
-
|
|
272
|
+
roleElements.get(role)?.forEach((value) => {
|
|
242
273
|
let locator;
|
|
243
274
|
let tagname, tagAttribute, tagAttributevalue;
|
|
244
275
|
tagname = value.name;
|
|
@@ -13,5 +13,5 @@ export declare const getElement: (this: WebdriverIO.Browser | WebdriverIO.Elemen
|
|
|
13
13
|
* @param {Object} res findElements response
|
|
14
14
|
* @return {Array} array of WDIO elements
|
|
15
15
|
*/
|
|
16
|
-
export declare const getElements: (this: WebdriverIO.Browser | WebdriverIO.Element, selector: Selector, elemResponse: ElementReference[], isReactElement?: boolean) => ElementArray;
|
|
16
|
+
export declare const getElements: (this: WebdriverIO.Browser | WebdriverIO.Element, selector: Selector | ElementReference[] | WebdriverIO.Element[], elemResponse: ElementReference[], isReactElement?: boolean) => ElementArray;
|
|
17
17
|
//# sourceMappingURL=getElementObject.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getElementObject.d.ts","sourceRoot":"","sources":["../../src/utils/getElementObject.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"getElementObject.d.ts","sourceRoot":"","sources":["../../src/utils/getElementObject.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAMvD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SACb,YAAY,OAAO,GAAG,mBAAmB,aACpC,QAAQ,QACb,gBAAgB,GAAG,KAAK,+BAE/B,mBAuDF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SACd,YAAY,OAAO,GAAG,mBAAmB,YACrC,QAAQ,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,gBACjD,gBAAgB,EAAE,+BAEjC,YAiEF,CAAA"}
|