UNPKG

webdriverio

Version:

Next-gen browser and mobile automation test framework for Node.js

34 lines (28 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = refetchElement; var _implicitWait = _interopRequireDefault(require("./implicitWait")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function refetchElement(currentElement, commandName) { let selectors = []; while (currentElement.elementId && currentElement.parent) { selectors.push({ selector: currentElement.selector, index: currentElement.index || 0 }); currentElement = currentElement.parent; } selectors.reverse(); const length = selectors.length; return selectors.reduce(async (elementPromise, { selector, index }, currentIndex) => { const resolvedElement = await elementPromise; let nextElement = index > 0 ? (await resolvedElement.$$(selector))[index] : null; nextElement = nextElement || (await resolvedElement.$(selector)); return await (0, _implicitWait.default)(nextElement, currentIndex + 1 < length ? '$' : commandName); }, Promise.resolve(currentElement)); }