diff --git a/docs/api.md b/docs/api.md
index ee41958aec..119d790b74 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -280,7 +280,7 @@ await context.close();
- [browserContext.clearCookies()](#browsercontextclearcookies)
- [browserContext.clearPermissions()](#browsercontextclearpermissions)
- [browserContext.close()](#browsercontextclose)
-- [browserContext.cookies([...urls])](#browsercontextcookiesurls)
+- [browserContext.cookies([urls])](#browsercontextcookiesurls)
- [browserContext.exposeFunction(name, playwrightFunction)](#browsercontextexposefunctionname-playwrightfunction)
- [browserContext.newPage()](#browsercontextnewpage)
- [browserContext.pages()](#browsercontextpages)
@@ -365,8 +365,8 @@ will be closed.
> **NOTE** the default browser context cannot be closed.
-#### browserContext.cookies([...urls])
-- `...urls` <...[string]>
+#### browserContext.cookies([urls])
+- `urls` <[string]|[Array]<[string]>>
- returns: <[Promise]<[Array]<[Object]>>>
- `name` <[string]>
- `value` <[string]>
@@ -653,7 +653,7 @@ page.removeListener('request', logRequest);
- [page.reload([options])](#pagereloadoptions)
- [page.route(url, handler)](#pagerouteurl-handler)
- [page.screenshot([options])](#pagescreenshotoptions)
-- [page.select(selector, value[, options])](#pageselectselector-value-options)
+- [page.select(selector, values[, options])](#pageselectselector-values-options)
- [page.setContent(html[, options])](#pagesetcontenthtml-options)
- [page.setDefaultNavigationTimeout(timeout)](#pagesetdefaultnavigationtimeouttimeout)
- [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout)
@@ -907,6 +907,12 @@ To disable authentication, pass `null`.
- `selector` <[string]> A selector to search for checkbox or radio button to check. If there are multiple elements satisfying the selector, the first will be checked.
- `options` <[Object]>
- `waitFor` <[boolean]> Whether to wait for the element to be present in the dom and displayed (for example, no `display:none`), stop moving (for example, wait until css transition finishes) and potentially receive pointer events at the click point (for example, wait until element becomes non-obscured by other elements). Defaults to `true`.
+ - `waitUntil` <"commit"|"load"|"domcontentloaded"|"networkidle0"|"networkidle2"> When to consider navigation succeeded, defaults to `commit`. Events can be either:
+ - `'commit'` - navigation is committed, new url is displayed in the browser address bar.
+ - `'load'` - consider navigation to be finished when the `load` event is fired.
+ - `'domcontentloaded'` - consider navigation to be finished when the `DOMContentLoaded` event is fired.
+ - `'networkidle0'` - consider navigation to be finished when there are no more than 0 network connections for at least `500` ms.
+ - `'networkidle2'` - consider navigation to be finished when there are no more than 2 network connections for at least `500` ms.
- `timeout` <[number]> Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](#browsercontextsetdefaulttimeouttimeout) or [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout) methods.
- returns: <[Promise]> Promise which resolves when the element matching `selector` is successfully checked. The Promise will be rejected if there is no element matching `selector`.
@@ -926,20 +932,18 @@ Shortcut for [page.mainFrame().check(selector[, options])](#framecheckselector-o
- y <[number]>
- `modifiers` <[Array]<"Alt"|"Control"|"Meta"|"Shift">> Modifier keys to press. Ensures that only these modifiers are pressed during the click, and then restores current modifiers back. If not specified, currently pressed modifiers are used.
- `waitFor` <[boolean]> Whether to wait for the element to be present in the dom and displayed (for example, no `display:none`), stop moving (for example, wait until css transition finishes) and potentially receive pointer events at the click point (for example, wait until element becomes non-obscured by other elements). Defaults to `true`.
+ - `waitUntil` <"commit"|"load"|"domcontentloaded"|"networkidle0"|"networkidle2"> When to consider navigation succeeded, defaults to `commit`. Events can be either:
+ - `'commit'` - navigation is committed, new url is displayed in the browser address bar.
+ - `'load'` - consider navigation to be finished when the `load` event is fired.
+ - `'domcontentloaded'` - consider navigation to be finished when the `DOMContentLoaded` event is fired.
+ - `'networkidle0'` - consider navigation to be finished when there are no more than 0 network connections for at least `500` ms.
+ - `'networkidle2'` - consider navigation to be finished when there are no more than 2 network connections for at least `500` ms.
- `timeout` <[number]> Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](#browsercontextsetdefaulttimeouttimeout) or [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout) methods.
- returns: <[Promise]> Promise which resolves when the element matching `selector` is successfully clicked. The Promise will be rejected if there is no element matching `selector`.
This method fetches an element with `selector`, scrolls it into view if needed, and then uses [page.mouse](#pagemouse) to click in the center of the element.
If there's no element matching `selector`, the method throws an error.
-Bear in mind that if `click()` triggers a navigation event and there's a separate `page.waitForNavigation()` promise to be resolved, you may end up with a race condition that yields unexpected results. The correct pattern for click and wait for navigation is the following:
-
-```javascript
-const [response] = await Promise.all([
- page.waitForNavigation(waitOptions),
- page.click(selector, clickOptions),
-]);
-```
Shortcut for [page.mainFrame().click(selector[, options])](#frameclickselector-options).
@@ -982,6 +986,12 @@ Browser-specific Coverage implementation, only available for Chromium atm. See [
- y <[number]>
- `modifiers` <[Array]<"Alt"|"Control"|"Meta"|"Shift">> Modifier keys to press. Ensures that only these modifiers are pressed during the double click, and then restores current modifiers back. If not specified, currently pressed modifiers are used.
- `waitFor` <[boolean]> Whether to wait for the element to be present in the dom and displayed (for example, no `display:none`), stop moving (for example, wait until css transition finishes) and potentially receive pointer events at the click point (for example, wait until element becomes non-obscured by other elements). Defaults to `true`.
+ - `waitUntil` <"commit"|"load"|"domcontentloaded"|"networkidle0"|"networkidle2"> When to consider navigation succeeded, defaults to `commit`. Events can be either:
+ - `'commit'` - navigation is committed, new url is displayed in the browser address bar.
+ - `'load'` - consider navigation to be finished when the `load` event is fired.
+ - `'domcontentloaded'` - consider navigation to be finished when the `DOMContentLoaded` event is fired.
+ - `'networkidle0'` - consider navigation to be finished when there are no more than 0 network connections for at least `500` ms.
+ - `'networkidle2'` - consider navigation to be finished when there are no more than 2 network connections for at least `500` ms.
- `timeout` <[number]> Maximum time in milliseconds, defaults to 30 seconds, pass `0` to disable timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](#browsercontextsetdefaulttimeouttimeout) or [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout) methods.
- returns: <[Promise]> Promise which resolves when the element matching `selector` is successfully double clicked. The Promise will be rejected if there is no element matching `selector`.
@@ -1154,6 +1164,12 @@ const fs = require('fs');
- `value` <[string]> Value to fill for the ``, `