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({ options, timeout, timeoutMsg, interval })
Parameters
Name | Type | Details |
---|---|---|
condition | ? | condition to wait on |
options optional | WaitUntilOptions | command options |
options.timeout optional | Number | timeout in ms (default: 5000) |
options.timeoutMsg optional | String | error message to throw when waitUntil times out |
options.interval optional | Number | 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(
() => $('#someText').getText() === 'I am now different',
{
timeout: 5000,
timeoutMsg: 'expected text to be different after 5s'
}
);
});