Runner.browsers Method
Configures the test runner to run tests in the specified browsers.
browsers(browser) → this
The browser
parameter can be any of the following objects or an Array
of them:
Parameter Type | Description | Browser Type |
---|---|---|
String | Array | A different browser alias for each browser type. See Browser Support for more details. | Local browsers, cloud browsers, and browsers accessed through browser provider plugins. |
{path: String, cmd: String} |
The path to the browser's executable (path ) and command line parameters (cmd ). The cmd property is optional. |
Local and portable browsers |
BrowserConnection | The remote browser connection. | Remote browsers |
You do not need to call this function if you specify the browsers property in the configuration file.
Related configuration file property: browsers
Use Browser Aliases #
You can identify locally installed browsers with predefined browser aliases:
runner.browsers(['safari', 'chrome']);
You can also use aliases to run browsers accessed with provider plugins, such as browsers in cloud testing services:
runner.browsers('saucelabs:Chrome@52.0:Windows 8.1');
Specify the Path to the Browser Executable #
To specify the path to the browser executable, use the path:
prefix. Enclose the path in backticks if it contains spaces:
runner.browsers('path:`C:\\Program Files\\Internet Explorer\\iexplore.exe`');
Specify the Path With Command Line Parameters #
runner.browsers({
path: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
cmd: '--new-window'
});
Headless Mode, Device Emulation and User Profiles #
You can add postfixes to browser aliases to run tests in the headless mode, use Chrome device emulation or user profiles:
runner.browsers('chrome:headless');
For portable browsers, use the browser alias followed by the path to an executable:
runner.browsers('firefox:/home/user/apps/firefox.app:userProfile');
The
path:
prefix does not support postfixes.
Combining
:userProfile
flag with eitherheadless
oremulation
mode can lead to unstable behaviour and is not recommended.
Pass a Remote Browser Connection #
const createTestCafe = require('testcafe');
const testcafe = await createTestCafe('localhost', 1337, 1338);
const runner = testcafe.createRunner();
const remoteConnection = await testcafe.createBrowserConnection();
// Outputs remoteConnection.url so that it can be visited from the remote browser.
console.log(remoteConnection.url);
remoteConnection.once('ready', async () => {
const failedCount = await runner
.src('test.js')
.browsers(remoteConnection)
.run();
console.log(failedCount);
await testcafe.close();
});