Skip to main content

call

You can use call to execute any async action within your test spec. The command itself is treated like a synchronous function. It accepts promises and stops the execution until the promise has resolved.

This command helps to run asynchronous code within a synchronous context. With WebdriverIO depcrecating synchronous usage (see RFC) this command is not very useful anymore.

Usage
browser.call(callback)
Parameters
NameTypeDetails
callbackFunctionfunction to be called
Example
call.js
it('some testing here', async () => {
await browser.url('http://google.com')
// make an asynchronous call using any 3rd party library supporting promises
// e.g. call to backend or db to inject fixture data
await browser.call(() => {
return somePromiseLibrary.someMethod().then(() => {
// ...
})
})

// example for async call to 3rd party library that doesn't support promises
const result = await browser.call(() => {
return new Promise((resolve, reject) => {
someOtherNodeLibrary.someMethod(param1, (err, res) => {
if (err) {
return reject(err)
}
resolve(res)
})
})
})
});