UNPKG

1.1 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = refetchElement;
7
8var _implicitWait = _interopRequireDefault(require("./implicitWait"));
9
10function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
12async 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