---
title: "BrowserContext | Grafana k6 documentation"
description: "Browser module: BrowserContext Class"
---

# BrowserContext

`BrowserContext`s provide a way to operate multiple independent sessions, with separate pages, cache, and cookies. A default `BrowserContext` is created when a browser is launched.

The [browser module API](/docs/k6/latest/javascript-api/k6-browser/#browser-module-api) is used to create a new `BrowserContext`.

If a [page](/docs/k6/latest/javascript-api/k6-browser/page/) opens another page, e.g. with a `window.open` call, the popup will belong to the parent page’s `BrowserContext`.

Expand table

| Method                                                                                                                                                        | Description                                                                                                                                                                                          |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [addCookies()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/addcookies/)                                                                          | Adds [cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/) into the `BrowserContext`.                                                                                          |
| [addInitScript()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/addinitscript/)                                                                    | Adds a script that will be evaluated on [page](/docs/k6/latest/javascript-api/k6-browser/page/) creation, [frame](/docs/k6/latest/javascript-api/k6-browser/frame/) attached or a navigation occurs. |
| [clearCookies()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/clearcookies/)                                                                      | Clear the `BrowserContext`’s [cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/).                                                                                            |
| [clearPermissions()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/clearpermissions/)                                                              | Clears all permission overrides for the `BrowserContext`.                                                                                                                                            |
| [cookies()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookies/)                                                                                | Returns a list of [cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/) from the `BrowserContext`.                                                                             |
| [close()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/close/)                                                                                    | Close the `BrowserContext` and all its [page](/docs/k6/latest/javascript-api/k6-browser/page/)s.                                                                                                     |
| [grantPermissions(permissions\[, options\])](/docs/k6/latest/javascript-api/k6-browser/browsercontext/grantpermissions/)                                      | Grants specified permissions to the `BrowserContext`.                                                                                                                                                |
| [newPage()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/newpage/)                                                                                | Uses the `BrowserContext` to create a new [Page](/docs/k6/latest/javascript-api/k6-browser/page/) and returns it.                                                                                    |
| [pages()](/docs/k6/latest/javascript-api/k6-browser/browsercontext/pages/) [](https://github.com/grafana/xk6-browser/issues/444)                              | Returns a list of [page](/docs/k6/latest/javascript-api/k6-browser/page/)s that belongs to the `BrowserContext`.                                                                                     |
| [setDefaultNavigationTimeout(timeout)](/docs/k6/latest/javascript-api/k6-browser/browsercontext/setdefaultnavigationtimeout/)                                 | Sets the default navigation timeout in milliseconds.                                                                                                                                                 |
| [setDefaultTimeout(timeout)](/docs/k6/latest/javascript-api/k6-browser/browsercontext/setdefaulttimeout/)                                                     | Sets the default maximum timeout for all methods accepting a timeout option in milliseconds.                                                                                                         |
| [setGeolocation(geolocation)](/docs/k6/latest/javascript-api/k6-browser/browsercontext/setgeolocation/) [](https://github.com/grafana/xk6-browser/issues/435) | Sets the `BrowserContext`’s geolocation.                                                                                                                                                             |
| [setOffline(offline)](/docs/k6/latest/javascript-api/k6-browser/browsercontext/setoffline/)                                                                   | Toggles the `BrowserContext`’s connectivity on/off.                                                                                                                                                  |
| [waitForEvent(event\[, optionsOrPredicate\])](/docs/k6/latest/javascript-api/k6-browser/browsercontext/waitforevent/)                                         | Waits for the event to fire and passes its value into the predicate function.                                                                                                                        |
