Chromium
isAlertOpen
Whether a simple dialog is currently open.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.isAlertOpen()
Example
console.log(browser.isAlertOpen()); // outputs: false
browser.execute('window.alert()');
console.log(browser.isAlertOpen()); // outputs: true
Returns
- <Boolean>
isAlertOpen
:true
orfalse
based on whether simple dialog is present or not.
isAutoReporting
Whether it should automatically raises errors on browser logs.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.isAutoReporting()
Returns
- <Boolean>
isAutoReporting
:true
orfalse
based on whether auto reporting is enabled.
setAutoReporting
Toggle whether to return response with unknown error with first browser error (e.g. failed to load resource due to 403/404 response) for all subsequent commands (once enabled).
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.setAutoReporting(enabled)
Parameters
Name | Type | Details |
---|---|---|
enabled | boolean | true if auto reporting should be enabled, use false to disable previously enabled auto reporting. |
Examples
// Enable auto reporting first thing after session was initiated with empty browser logs
console.log(browser.setAutoReporting(true)); // outputs: null
// Upon requesting an non-existing resource it will abort execution due to thrown unknown error
browser.url('https://webdriver.io/img/404-does-not-exist.png');
// During the session do some operations which populate the browser logs
browser.url('https://webdriver.io/img/404-does-not-exist.png');
browser.url('https://webdriver.io/403/no-access');
// Enable auto reporting which throws an unknown error for first browser log (404 response)
browser.setAutoReporting(true);
Returns
- <Object|Null>
firstBrowserError
: In case first browser error already occured prior to executing this command it will throw unknown error as response, which is an object with 'message' key describing first browser error. Otherwise it returnsnull
on success.
isLoading
Determines load status for active window handle.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.isLoading()
Example
console.log(browser.isLoading()); // outputs: false
browser.newWindow('https://webdriver.io');
console.log(browser.isLoading()); // outputs: true
Returns
- <Boolean>
isLoading
:true
orfalse
based on whether active window handle is loading or not.
takeHeapSnapshot
Takes a heap snapshot of the current execution context.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.takeHeapSnapshot()
Returns
- <Object>
heapSnapshot
: A JSON representation of the heap snapshot. Which can be inspected by loading as file into Chrome DevTools.
getNetworkConnection
Get the connection type for network emulation. This command is only applicable when remote end replies with networkConnectionEnabled
capability set to true
.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.getNetworkConnection()
Example
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// Network emulation requires device mode, which is only enabled when mobile emulation is on
mobileEmulation: { deviceName: 'iPad' },
},
}
});
console.log(browser.getNetworkConnection()); // outputs: 6 (Both Wi-Fi and data)
Returns
- <Number>
connectionType
: A bitmask to represent the network connection type. Airplane Mode (1
), Wi-Fi only (2
), Wi-Fi and data (6
), 4G (8
), 3G (10
), 2G (20
). By default Wi-Fi and data are enabled.
setNetworkConnection
Change connection type for network connection. This command is only applicable when remote end replies with networkConnectionEnabled
capability set to true
.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.setNetworkConnection(parameters)
Parameters
Name | Type | Details |
---|---|---|
parameters | object | Object containing ConnectionType, set bitmask as value for type key in object. Airplane Mode (1 ), Wi-Fi only (2 ), Wi-Fi and data (6 ), 4G (8 ), 3G (10 ), 2G (20 ). |
Example
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// Network emulation requires device mode, which is only enabled when mobile emulation is on
mobileEmulation: { deviceName: 'iPad' },
},
}
});
console.log(browser.setNetworkConnection({ type: 1 })); // outputs: 1 (Airplane Mode)
Returns
- <Number>
connectionType
: A bitmask to represent the network connection type. Value should match specifiedtype
in object, however device might not be capable of the network connection type requested.
getNetworkConditions
Get current network conditions used for emulation.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.getNetworkConditions()
Returns
- <Object>
networkConditions
: Object containing network conditions foroffline
,latency
,download_throughput
andupload_throughput
. Network conditions must be set before it can be retrieved.
setNetworkConditions
Set network conditions used for emulation by throttling connection.
Non official and undocumented Chromium command. More about this command can be found here.
Usage
browser.setNetworkConditions(network_conditions, network_name)
Parameters
Name | Type | Details |
---|---|---|
network_conditions | object | Object containing network conditions which are latency , throughput (or download_throughput /upload_throughput ) and offline (optional). |
network_name optional | string | Name of network throttling preset. GPRS , Regular 2G , Good 2G , Regular 3G , Good 3G , Regular 4G , DSL , WiFi or No throttling to disable. When preset is specified values passed in first argument are not respected. |
Examples
// Use different download (25kb/s) and upload (50kb/s) throughput values for throttling with a latency of 1000ms
browser.setNetworkConditions({ latency: 1000, download_throughput: 25600, upload_throughput: 51200 });