1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = refetchElement;
|
7 |
|
8 | var _implicitWait = _interopRequireDefault(require("./implicitWait"));
|
9 |
|
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11 |
|
12 | async function refetchElement(currentElement, commandName) {
|
13 | let selectors = [];
|
14 |
|
15 | while (currentElement.elementId && currentElement.parent) {
|
16 | selectors.push({
|
17 | selector: currentElement.selector,
|
18 | index: currentElement.index || 0
|
19 | });
|
20 | currentElement = currentElement.parent;
|
21 | }
|
22 |
|
23 | selectors.reverse();
|
24 | const length = selectors.length;
|
25 | return selectors.reduce(async (elementPromise, {
|
26 | selector,
|
27 | index
|
28 | }, currentIndex) => {
|
29 | const resolvedElement = await elementPromise;
|
30 | let nextElement = index > 0 ? (await resolvedElement.$$(selector))[index] : null;
|
31 | nextElement = nextElement || (await resolvedElement.$(selector));
|
32 | return await (0, _implicitWait.default)(nextElement, currentIndex + 1 < length ? '$' : commandName);
|
33 | }, Promise.resolve(currentElement));
|
34 | } |
\ | No newline at end of file |