@christian-bromann/webdriverio
Version:
A nodejs bindings implementation for selenium 2.0/webdriver
88 lines (73 loc) • 2.12 kB
Markdown
name: The Browser Object
category: testrunner
tags: guide
index: 3
title: WebdriverIO - The Browser Object
The Browser Object
==================
If you use the wdio test runner you can access the webdriver instance through the global `browser` object. The session is initialized by the test runner so you don't need to call [`init`](/api/protocol/init.html) command. The same goes for ending the session. This is also done by the test runner process.
Besides all commands from the [api](/api.html) the browser object provides some more information you might be interested in during your test run:
### Get desired capabilities
```js
console.log(browser.desiredCapabilities);
/**
* outputs:
* {
javascriptEnabled: true,
locationContextEnabled: true,
handlesAlerts: true,
rotatable: true,
browserName: 'chrome',
loggingPrefs: { browser: 'ALL', driver: 'ALL' }
}
*/
```
### Get wdio config options
```js
// wdio.conf.js
exports.config = {
// ...
foobar: true,
// ...
}
```
```js
console.log(browser.options);
/**
* outputs:
* {
port: 4444,
protocol: 'http',
waitforTimeout: 10000,
waitforInterval: 250,
coloredLogs: true,
logLevel: 'verbose',
baseUrl: 'http://localhost',
connectionRetryTimeout: 90000,
connectionRetryCount: 3,
sync: true,
specs: [ 'err.js' ],
foobar: true, // <-- custom option
// ...
*/
```
### Check if capability is a mobile device
```js
var client = require('webdriverio').remote({
desiredCapabilities: {
platformName: 'iOS',
app: 'net.company.SafariLauncher',
udid: '123123123123abc',
deviceName: 'iPhone',
}
});
console.log(client.isMobile); // outputs: true
console.log(client.isIOS); // outputs: true
console.log(client.isAndroid); // outputs: false
```
### Log results
```js
browser.logger.info('some random logging');
```
For more information about the logger class check out [Logger.js](https://github.com/webdriverio/webdriverio/blob/master/lib/utils/Logger.js) on GitHub.