waitUntil

This wait command is your universal weapon if you want to wait on something. It expects a condition and waits until that condition is fulfilled with a truthy value. If you use the WDIO testrunner the commands within the condition are getting executed synchronously like in your test.

A common example is to wait until a certain element contains a certain text (see example).

Usage#
$(selector).waitUntil(condition, { timeout, timeoutMsg, interval })
Parameters#
NameTypeDetails
conditioncondition to wait on
options
optional
WaitUntilOptionscommand options
options.timeout
optional
Numbertimeout in ms (default: 5000)
options.timeoutMsg
optional
Stringerror message to throw when waitUntil times out
options.interval
optional
Numberinterval between condition checks (default: 500)
Examples#
example.html
<div id="someText">I am some text</div>
<script>
setTimeout(() => {
$('#someText').html('I am now different');
}, 1000);
</script>
waitUntil.js
it('should wait until text has changed', () => {
const elem = $('#someText')
elem.waitUntil(function () {
return this.getText() === 'I am now different'
}, {
timeout: 5000,
timeoutMsg: 'expected text to be different after 5s'
});
});