Throttle the network capabilities of the browser. This can help to emulate certain scenarios where a user loses their internet connection and your app needs to address that.

There are many presets available with default configurations for ease of use. They are offline, GPRS, Regular2G, Good2G, Regular3G, Good3G, Regular4G, DSL, WiFi, online.

You can see the values for these presets in the source code.


Note that using the throttle command requires support for Chrome DevTools protocol and e.g. can not be used when running automated tests in the cloud. Find out more in the Automation Protocols section.

browser.throttle({ offline, latency, downloadThroughput, uploadThroughput })
paramsThrottleOptionsparameters for throttling
params.offlineBooleanTrue to emulate internet disconnection.
params.latencyNumberMinimum latency from request sent to response headers received (ms).
params.downloadThroughputNumberMaximal aggregated download throughput (bytes/sec). -1 disables download throttling.
params.uploadThroughputNumberMaximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.
it('should throttle the network', () => {
// via static string preset
browser.throttle('Regular 3G')
// via custom values
'offline': false,
'downloadThroughput': 200 * 1024 / 8,
'uploadThroughput': 200 * 1024 / 8,
'latency': 20