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
browser.waitUntil(condition, timeout, timeoutMsg, interval)
Parameters
Name | Type | Details |
---|---|---|
condition | Function | condition to wait on |
timeout optional | Number , undefined | timeout in ms (default: 5000) |
timeoutMsg optional | String , undefined | error message to throw when waitUntil times out |
interval optional | Number , undefined | interval between condition checks (default: 500) |
Examples
<div id="someText">I am some text</div>
<script>
setTimeout(() => {
$('#someText').html('I am now different');
}, 1000);
</script>
it('should wait until text has changed', () => {
browser.waitUntil(() => {
return $('#someText').getText() === 'I am now different'
}, 5000, 'expected text to be different after 5s');
});