webdriverio 7.22.0 → 7.23.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/build/commands/browser/$$.d.ts +10 -1
- package/build/commands/browser/$$.d.ts.map +1 -1
- package/build/commands/browser/$$.js +11 -1
- package/build/commands/element/isClickable.d.ts.map +1 -1
- package/build/commands/element/isClickable.js +3 -0
- package/build/utils/getElementObject.d.ts +1 -1
- package/build/utils/getElementObject.d.ts.map +1 -1
- package/build/utils/getElementObject.js +9 -1
- package/build/utils/index.d.ts +1 -1
- package/build/utils/index.d.ts.map +1 -1
- package/build/utils/index.js +7 -1
- package/package.json +8 -8
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ElementReference } from '@wdio/protocols';
|
|
1
2
|
import type { Selector, ElementArray } from '../../types';
|
|
2
3
|
/**
|
|
3
4
|
* The `$$` command is a short way to call the [`findElements`](/docs/api/webdriver#findelements) command in order
|
|
@@ -38,6 +39,14 @@ import type { Selector, ElementArray } from '../../types';
|
|
|
38
39
|
})[0];
|
|
39
40
|
console.log(await text.$$('li')[2].$('a').getText()); // outputs: "API"
|
|
40
41
|
});
|
|
42
|
+
|
|
43
|
+
it('can create element array out of single elements', async () => {
|
|
44
|
+
const red = await $('.red');
|
|
45
|
+
const green = await $('.green');
|
|
46
|
+
const elems = $$([red, green]);
|
|
47
|
+
console.log(await elems.map((e) => e.getAttribute('class')));
|
|
48
|
+
// returns "[ 'box red ui-droppable', 'box green' ]"
|
|
49
|
+
});
|
|
41
50
|
* </example>
|
|
42
51
|
*
|
|
43
52
|
* @alias $$
|
|
@@ -46,5 +55,5 @@ import type { Selector, ElementArray } from '../../types';
|
|
|
46
55
|
* @type utility
|
|
47
56
|
*
|
|
48
57
|
*/
|
|
49
|
-
export default function $$(this: WebdriverIO.Browser | WebdriverIO.Element, selector: Selector): Promise<ElementArray>;
|
|
58
|
+
export default function $$(this: WebdriverIO.Browser | WebdriverIO.Element, selector: Selector | ElementReference[] | WebdriverIO.Element[]): Promise<ElementArray>;
|
|
50
59
|
//# sourceMappingURL=$$.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$$.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/$$.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"$$.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/$$.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIvD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAA8B,EAAE,CAC5B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,yBAOlE"}
|
|
@@ -41,6 +41,14 @@ const getElementObject_1 = require("../../utils/getElementObject");
|
|
|
41
41
|
})[0];
|
|
42
42
|
console.log(await text.$$('li')[2].$('a').getText()); // outputs: "API"
|
|
43
43
|
});
|
|
44
|
+
|
|
45
|
+
it('can create element array out of single elements', async () => {
|
|
46
|
+
const red = await $('.red');
|
|
47
|
+
const green = await $('.green');
|
|
48
|
+
const elems = $$([red, green]);
|
|
49
|
+
console.log(await elems.map((e) => e.getAttribute('class')));
|
|
50
|
+
// returns "[ 'box red ui-droppable', 'box green' ]"
|
|
51
|
+
});
|
|
44
52
|
* </example>
|
|
45
53
|
*
|
|
46
54
|
* @alias $$
|
|
@@ -50,7 +58,9 @@ const getElementObject_1 = require("../../utils/getElementObject");
|
|
|
50
58
|
*
|
|
51
59
|
*/
|
|
52
60
|
async function $$(selector) {
|
|
53
|
-
const res =
|
|
61
|
+
const res = Array.isArray(selector)
|
|
62
|
+
? selector
|
|
63
|
+
: await utils_1.findElements.call(this, selector);
|
|
54
64
|
const elements = await getElementObject_1.getElements.call(this, selector, res);
|
|
55
65
|
return (0, utils_1.enhanceElementsArray)(elements, this, selector);
|
|
56
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isClickable.d.ts","sourceRoot":"","sources":["../../../src/commands/element/isClickable.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAA8B,WAAW,CAAE,IAAI,EAAE,WAAW,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"isClickable.d.ts","sourceRoot":"","sources":["../../../src/commands/element/isClickable.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAA8B,WAAW,CAAE,IAAI,EAAE,WAAW,CAAC,OAAO,oBAcnE"}
|
|
@@ -48,6 +48,9 @@ async function isClickable() {
|
|
|
48
48
|
if (!await this.isDisplayed()) {
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
|
+
if (this.isMobile && await this.getContext() === 'NATIVE_APP') {
|
|
52
|
+
throw new Error('Method not supported in mobile native environment. It is unlikely that you need to use this command.');
|
|
53
|
+
}
|
|
51
54
|
const browser = (0, utils_1.getBrowserObject)(this);
|
|
52
55
|
return browser.execute(isElementClickable_1.default, {
|
|
53
56
|
[constants_1.ELEMENT_KEY]: this.elementId,
|
|
@@ -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;AAKvD,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,mBA8CF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SACd,YAAY,OAAO,GAAG,mBAAmB,YACrC,QAAQ,
|
|
1
|
+
{"version":3,"file":"getElementObject.d.ts","sourceRoot":"","sources":["../../src/utils/getElementObject.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAKvD,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,mBA8CF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,SACd,YAAY,OAAO,GAAG,mBAAmB,YACrC,QAAQ,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,gBACjD,gBAAgB,EAAE,+BAEjC,YAwDF,CAAA"}
|
|
@@ -70,6 +70,12 @@ const getElements = function getElements(selector, elemResponse, isReactElement
|
|
|
70
70
|
...(0, _1.getPrototype)('element')
|
|
71
71
|
};
|
|
72
72
|
const elements = elemResponse.map((res, i) => {
|
|
73
|
+
/**
|
|
74
|
+
* if we already deal with an element, just return it
|
|
75
|
+
*/
|
|
76
|
+
if (res.selector) {
|
|
77
|
+
return res;
|
|
78
|
+
}
|
|
73
79
|
propertiesObject.scope = { value: 'element' };
|
|
74
80
|
const element = (0, utils_1.webdriverMonad)(this.options, (client) => {
|
|
75
81
|
const elementId = (0, _1.getElementFromResponse)(res);
|
|
@@ -87,7 +93,9 @@ const getElements = function getElements(selector, elemResponse, isReactElement
|
|
|
87
93
|
else {
|
|
88
94
|
client.error = res;
|
|
89
95
|
}
|
|
90
|
-
client.selector = selector
|
|
96
|
+
client.selector = Array.isArray(selector)
|
|
97
|
+
? selector[i].selector
|
|
98
|
+
: selector;
|
|
91
99
|
client.parent = this;
|
|
92
100
|
client.index = i;
|
|
93
101
|
client.emit = this.emit.bind(this);
|
package/build/utils/index.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ export declare function addLocatorStrategyHandler(scope: WebdriverIO.Browser | W
|
|
|
79
79
|
* @param {Array} props additional properties required to fetch elements again
|
|
80
80
|
* @returns {object[]} elements
|
|
81
81
|
*/
|
|
82
|
-
export declare const enhanceElementsArray: (elements: ElementArray, parent: WebdriverIO.Browser | WebdriverIO.Element, selector: Selector, foundWith?: string, props?: any[]) => ElementArray;
|
|
82
|
+
export declare const enhanceElementsArray: (elements: ElementArray, parent: WebdriverIO.Browser | WebdriverIO.Element, selector: Selector | ElementReference[] | WebdriverIO.Element[], foundWith?: string, props?: any[]) => ElementArray;
|
|
83
83
|
/**
|
|
84
84
|
* is protocol stub
|
|
85
85
|
* @param {string} automationProtocol
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAA;AAKxD,OAAO,KAAK,EAAE,YAAY,EAAmB,QAAQ,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAsBjH;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,SAAS,GAAG,SAAS,uCAmBxD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,gBAAgB,QAuB3D,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAGtG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,UAAO,YA0B3E;AAWD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,kBAkDvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,UAAQ,YAKrB;AAkBD;;GAEG;AACH,wBAAsB,WAAW,CAC7B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,qCAmDrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,+BAgDrB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,GAAG,OAkBpD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,iDAuC9D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,UAInD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,QAIrD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAcnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAC,OAAO;;;GAK5D;AAED,wBAAsB,YAAY,CAAE,OAAO,EAAE,WAAW,CAAC,OAAO,oBAkB/D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,UACnF,MAAM,mBAAmB,MAAM,SAAS,WAAW,KAAK,wBAAwB,UAOjG;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,aACnB,YAAY,UACd,YAAY,OAAO,GAAG,mBAAmB,YACvC,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAA;AAKxD,OAAO,KAAK,EAAE,YAAY,EAAmB,QAAQ,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAsBjH;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,SAAS,GAAG,SAAS,uCAmBxD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,gBAAgB,QAuB3D,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAGtG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,UAAO,YA0B3E;AAWD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,kBAkDvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,UAAQ,YAKrB;AAkBD;;GAEG;AACH,wBAAsB,WAAW,CAC7B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,qCAmDrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,+BAgDrB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,GAAG,OAkBpD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,iDAuC9D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,UAInD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,QAIrD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAcnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAC,OAAO;;;GAK5D;AAED,wBAAsB,YAAY,CAAE,OAAO,EAAE,WAAW,CAAC,OAAO,oBAkB/D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,UACnF,MAAM,mBAAmB,MAAM,SAAS,WAAW,KAAK,wBAAwB,UAOjG;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,aACnB,YAAY,UACd,YAAY,OAAO,GAAG,mBAAmB,YACvC,QAAQ,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,8BAExD,GAAG,EAAE,iBAcf,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,wBAAyB,MAAM,YAA6C,CAAA;AAE/F,eAAO,MAAM,qBAAqB,WAAkB,mBAAmB,GAAG,QAAQ,UAAU,wCAmE3F,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,WAAkB,mBAAmB,GAAG,QAAQ,UAAU,uBAAuB,QAAQ,kBAAkB,kBAIzI,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,SACvB,OAAO,MAAM,EAAE,MAAM,CAAC,SACrB,OAAO,MAAM,EAAE,MAAM,CAAC,YAShC,CAAA"}
|
package/build/utils/index.js
CHANGED
|
@@ -446,8 +446,14 @@ exports.addLocatorStrategyHandler = addLocatorStrategyHandler;
|
|
|
446
446
|
* @returns {object[]} elements
|
|
447
447
|
*/
|
|
448
448
|
const enhanceElementsArray = (elements, parent, selector, foundWith = '$$', props = []) => {
|
|
449
|
+
/**
|
|
450
|
+
* if we have an element collection, e.g. `const elems = $$([elemA, elemB])`
|
|
451
|
+
* we cna't assign a common selector to the element array
|
|
452
|
+
*/
|
|
453
|
+
if (!Array.isArray(selector)) {
|
|
454
|
+
elements.selector = selector;
|
|
455
|
+
}
|
|
449
456
|
elements.parent = parent;
|
|
450
|
-
elements.selector = selector;
|
|
451
457
|
elements.foundWith = foundWith;
|
|
452
458
|
elements.props = props;
|
|
453
459
|
return elements;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webdriverio",
|
|
3
3
|
"description": "Next-gen browser and mobile automation test framework for Node.js",
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.23.0",
|
|
5
5
|
"homepage": "https://webdriver.io",
|
|
6
6
|
"author": "Christian Bromann <mail@bromann.dev>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -57,17 +57,17 @@
|
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@types/aria-query": "^5.0.0",
|
|
59
59
|
"@types/node": "^18.0.0",
|
|
60
|
-
"@wdio/config": "7.
|
|
60
|
+
"@wdio/config": "7.23.0",
|
|
61
61
|
"@wdio/logger": "7.19.0",
|
|
62
62
|
"@wdio/protocols": "7.22.0",
|
|
63
|
-
"@wdio/repl": "7.
|
|
64
|
-
"@wdio/types": "7.
|
|
65
|
-
"@wdio/utils": "7.
|
|
63
|
+
"@wdio/repl": "7.23.0",
|
|
64
|
+
"@wdio/types": "7.23.0",
|
|
65
|
+
"@wdio/utils": "7.23.0",
|
|
66
66
|
"archiver": "^5.0.0",
|
|
67
67
|
"aria-query": "^5.0.0",
|
|
68
68
|
"css-shorthand-properties": "^1.1.1",
|
|
69
69
|
"css-value": "^0.0.1",
|
|
70
|
-
"devtools": "7.
|
|
70
|
+
"devtools": "7.23.0",
|
|
71
71
|
"devtools-protocol": "^0.0.1034970",
|
|
72
72
|
"fs-extra": "^10.0.0",
|
|
73
73
|
"grapheme-splitter": "^1.0.2",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"resq": "^1.9.1",
|
|
82
82
|
"rgb2hex": "0.2.5",
|
|
83
83
|
"serialize-error": "^8.0.0",
|
|
84
|
-
"webdriver": "7.
|
|
84
|
+
"webdriver": "7.23.0"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "00407ba4e1b414c38195789c748bbad69df1b26d"
|
|
87
87
|
}
|