Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 69x 444x 6x 6x 6x 4x 2x 438x | import logger from '@wdio/logger'
const log = logger('webdriverio')
/**
* wait on element if:
* - elementId couldn't be fetched in the first place
* - command is not explicit wait command for existance or displayedness
* @param {Object} currentElement element to wait on if necessary
* @param {string} commandName name of the command that called this
* @return {Promise} resolves with element after any necessary waiting
*/
export default async function implicitWait (currentElement, commandName) {
if (!currentElement.elementId && !commandName.match(/(waitUntil|waitFor|isExisting|is?\w+Displayed)/)) {
log.debug(
`command ${commandName} was called on an element ("${currentElement.selector}") ` +
'that wasn\'t found, waiting for it...'
)
try {
await currentElement.waitForExist()
/**
* if waitForExist was successful requery element and assign elementId to the scope
*/
return await currentElement.parent.$(currentElement.selector)
} catch {
throw new Error(
`Can't call ${commandName} on element with selector "${currentElement.selector}" because element wasn't found`)
}
}
return currentElement
}
|