call

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

Usage

1
browser.call(callback);

Parameters

Param Type Details
callback Function function to be called

Example

call.js
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
it('some testing here', function() {
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
browser.call(function () {
return somePromiseLibrary.someMethod().then(function () {
// ...
})
})

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

resolve(res)
})
})
})

// continue synchronously
browser.click('#elemA')
browser.setValue('.firstname','webdriverbot')
});