chore: deprecate/remove noWaitAfter from some actions (#31739)
The following actions keep `noWaitAfter` option: `click`, `selectOption` and `press`. All other actions that used to have `noWaitAfter` now behave like it was set to true, not waiting for follow-up navigations. In the docs, this option is marked as completely ignored. A small logic change was made to compensate for this behavior: when waiting for the `hitTargetInterceptor`, we now race it against navigations to avoid stalling when navigation stalls. Previously, waiting for the interceptor was disabled when `noWaitAfter` was passed, and since it's impossible to pass this option now, we mitigate by never stalling instead. Fixes #31469.
This commit is contained in:
parent
e06481a332
commit
6491e5b415
|
|
@ -164,7 +164,6 @@ This method checks the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked. If not, this method throws.
|
1. Ensure that the element is now checked. If not, this method throws.
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -178,7 +177,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: ElementHandle.check.force = %%-input-force-%%
|
### option: ElementHandle.check.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.check.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.check.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.check.timeout = %%-input-timeout-%%
|
### option: ElementHandle.check.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -251,8 +250,6 @@ This method double clicks the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set. Note that
|
|
||||||
if the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
||||||
|
|
@ -278,7 +275,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: ElementHandle.dblclick.force = %%-input-force-%%
|
### option: ElementHandle.dblclick.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.dblclick.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.dblclick.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.dblclick.timeout = %%-input-timeout-%%
|
### option: ElementHandle.dblclick.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -537,7 +534,7 @@ Value to set for the `<input>`, `<textarea>` or `[contenteditable]` element.
|
||||||
### option: ElementHandle.fill.force = %%-input-force-%%
|
### option: ElementHandle.fill.force = %%-input-force-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: ElementHandle.fill.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.fill.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.fill.timeout = %%-input-timeout-%%
|
### option: ElementHandle.fill.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -573,7 +570,6 @@ This method hovers over the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
||||||
|
|
@ -598,7 +594,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: ElementHandle.hover.trial = %%-input-trial-%%
|
### option: ElementHandle.hover.trial = %%-input-trial-%%
|
||||||
* since: v1.11
|
* since: v1.11
|
||||||
|
|
||||||
### option: ElementHandle.hover.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.hover.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.28
|
* since: v1.28
|
||||||
|
|
||||||
## async method: ElementHandle.innerHTML
|
## async method: ElementHandle.innerHTML
|
||||||
|
|
@ -920,7 +916,6 @@ This method checks or unchecks an element by performing the following steps:
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -932,7 +927,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: ElementHandle.setChecked.force = %%-input-force-%%
|
### option: ElementHandle.setChecked.force = %%-input-force-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: ElementHandle.setChecked.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.setChecked.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: ElementHandle.setChecked.position = %%-input-position-%%
|
### option: ElementHandle.setChecked.position = %%-input-position-%%
|
||||||
|
|
@ -961,7 +956,7 @@ This method expects [ElementHandle] to point to an
|
||||||
### param: ElementHandle.setInputFiles.files = %%-input-files-%%
|
### param: ElementHandle.setInputFiles.files = %%-input-files-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.setInputFiles.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.setInputFiles.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.setInputFiles.timeout = %%-input-timeout-%%
|
### option: ElementHandle.setInputFiles.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -978,7 +973,6 @@ This method taps the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
||||||
|
|
@ -998,7 +992,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: ElementHandle.tap.force = %%-input-force-%%
|
### option: ElementHandle.tap.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.tap.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.tap.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.tap.timeout = %%-input-timeout-%%
|
### option: ElementHandle.tap.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -1039,7 +1033,7 @@ A text to type into a focused element.
|
||||||
|
|
||||||
Time to wait between key presses in milliseconds. Defaults to 0.
|
Time to wait between key presses in milliseconds. Defaults to 0.
|
||||||
|
|
||||||
### option: ElementHandle.type.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.type.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.type.timeout = %%-input-timeout-%%
|
### option: ElementHandle.type.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -1058,7 +1052,6 @@ This method checks the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now unchecked. If not, this method throws.
|
1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -1072,7 +1065,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: ElementHandle.uncheck.force = %%-input-force-%%
|
### option: ElementHandle.uncheck.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.uncheck.noWaitAfter = %%-input-no-wait-after-%%
|
### option: ElementHandle.uncheck.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: ElementHandle.uncheck.timeout = %%-input-timeout-%%
|
### option: ElementHandle.uncheck.timeout = %%-input-timeout-%%
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ they are resolved relative to the current working directory. For empty array, cl
|
||||||
### param: FileChooser.setFiles.files = %%-input-files-%%
|
### param: FileChooser.setFiles.files = %%-input-files-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: FileChooser.setFiles.noWaitAfter = %%-input-no-wait-after-%%
|
### option: FileChooser.setFiles.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: FileChooser.setFiles.timeout = %%-input-timeout-%%
|
### option: FileChooser.setFiles.timeout = %%-input-timeout-%%
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,6 @@ This method checks an element matching [`param: selector`] by performing the fol
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked. If not, this method throws.
|
1. Ensure that the element is now checked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -210,7 +209,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Frame.check.force = %%-input-force-%%
|
### option: Frame.check.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.check.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.check.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.check.position = %%-input-position-%%
|
### option: Frame.check.position = %%-input-position-%%
|
||||||
|
|
@ -303,7 +302,6 @@ This method double clicks an element matching [`param: selector`] by performing
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set. Note that
|
|
||||||
if the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
if the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -328,7 +326,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Frame.dblclick.modifiers = %%-input-modifiers-%%
|
### option: Frame.dblclick.modifiers = %%-input-modifiers-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.dblclick.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.dblclick.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.dblclick.position = %%-input-position-%%
|
### option: Frame.dblclick.position = %%-input-position-%%
|
||||||
|
|
@ -463,7 +461,7 @@ Optional event-specific initialization properties.
|
||||||
### option: Frame.dragAndDrop.force = %%-input-force-%%
|
### option: Frame.dragAndDrop.force = %%-input-force-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: Frame.dragAndDrop.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.dragAndDrop.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: Frame.dragAndDrop.strict = %%-input-strict-%%
|
### option: Frame.dragAndDrop.strict = %%-input-strict-%%
|
||||||
|
|
@ -856,7 +854,7 @@ Value to fill for the `<input>`, `<textarea>` or `[contenteditable]` element.
|
||||||
### option: Frame.fill.force = %%-input-force-%%
|
### option: Frame.fill.force = %%-input-force-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: Frame.fill.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.fill.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.fill.strict = %%-input-strict-%%
|
### option: Frame.fill.strict = %%-input-strict-%%
|
||||||
|
|
@ -1130,7 +1128,6 @@ This method hovers over an element matching [`param: selector`] by performing th
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
[TimeoutError]. Passing zero timeout disables this.
|
[TimeoutError]. Passing zero timeout disables this.
|
||||||
|
|
@ -1159,7 +1156,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Frame.hover.trial = %%-input-trial-%%
|
### option: Frame.hover.trial = %%-input-trial-%%
|
||||||
* since: v1.11
|
* since: v1.11
|
||||||
|
|
||||||
### option: Frame.hover.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.hover.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.28
|
* since: v1.28
|
||||||
|
|
||||||
## async method: Frame.innerHTML
|
## async method: Frame.innerHTML
|
||||||
|
|
@ -1583,7 +1580,6 @@ This method checks or unchecks an element matching [`param: selector`] by perfor
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -1598,7 +1594,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Frame.setChecked.force = %%-input-force-%%
|
### option: Frame.setChecked.force = %%-input-force-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: Frame.setChecked.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.setChecked.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: Frame.setChecked.position = %%-input-position-%%
|
### option: Frame.setChecked.position = %%-input-position-%%
|
||||||
|
|
@ -1652,7 +1648,7 @@ This method expects [`param: selector`] to point to an
|
||||||
### param: Frame.setInputFiles.files = %%-input-files-%%
|
### param: Frame.setInputFiles.files = %%-input-files-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.setInputFiles.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.setInputFiles.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.setInputFiles.strict = %%-input-strict-%%
|
### option: Frame.setInputFiles.strict = %%-input-strict-%%
|
||||||
|
|
@ -1675,7 +1671,6 @@ This method taps an element matching [`param: selector`] by performing the follo
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
[TimeoutError]. Passing zero timeout disables this.
|
[TimeoutError]. Passing zero timeout disables this.
|
||||||
|
|
@ -1693,7 +1688,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Frame.tap.modifiers = %%-input-modifiers-%%
|
### option: Frame.tap.modifiers = %%-input-modifiers-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.tap.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.tap.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.tap.position = %%-input-position-%%
|
### option: Frame.tap.position = %%-input-position-%%
|
||||||
|
|
@ -1762,7 +1757,7 @@ A text to type into a focused element.
|
||||||
|
|
||||||
Time to wait between key presses in milliseconds. Defaults to 0.
|
Time to wait between key presses in milliseconds. Defaults to 0.
|
||||||
|
|
||||||
### option: Frame.type.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.type.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.type.strict = %%-input-strict-%%
|
### option: Frame.type.strict = %%-input-strict-%%
|
||||||
|
|
@ -1787,7 +1782,6 @@ This method checks an element matching [`param: selector`] by performing the fol
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now unchecked. If not, this method throws.
|
1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -1799,7 +1793,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Frame.uncheck.force = %%-input-force-%%
|
### option: Frame.uncheck.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.uncheck.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Frame.uncheck.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Frame.uncheck.position = %%-input-position-%%
|
### option: Frame.uncheck.position = %%-input-position-%%
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,6 @@ Performs the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked. If not, this method throws.
|
1. Ensure that the element is now checked. If not, this method throws.
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -267,7 +266,7 @@ await page.GetByRole(AriaRole.Checkbox).CheckAsync();
|
||||||
### option: Locator.check.force = %%-input-force-%%
|
### option: Locator.check.force = %%-input-force-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.check.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.check.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.check.timeout = %%-input-timeout-%%
|
### option: Locator.check.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -317,7 +316,7 @@ await page.GetByRole(AriaRole.Textbox).ClearAsync();
|
||||||
### option: Locator.clear.force = %%-input-force-%%
|
### option: Locator.clear.force = %%-input-force-%%
|
||||||
* since: v1.28
|
* since: v1.28
|
||||||
|
|
||||||
### option: Locator.clear.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.clear.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.28
|
* since: v1.28
|
||||||
|
|
||||||
### option: Locator.clear.timeout = %%-input-timeout-%%
|
### option: Locator.clear.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -483,8 +482,6 @@ This method double clicks the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set. Note that
|
|
||||||
if the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
||||||
|
|
@ -510,7 +507,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Locator.dblclick.force = %%-input-force-%%
|
### option: Locator.dblclick.force = %%-input-force-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.dblclick.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.dblclick.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.dblclick.timeout = %%-input-timeout-%%
|
### option: Locator.dblclick.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -709,7 +706,7 @@ Locator of the element to drag to.
|
||||||
### option: Locator.dragTo.force = %%-input-force-%%
|
### option: Locator.dragTo.force = %%-input-force-%%
|
||||||
* since: v1.18
|
* since: v1.18
|
||||||
|
|
||||||
### option: Locator.dragTo.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.dragTo.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.18
|
* since: v1.18
|
||||||
|
|
||||||
### option: Locator.dragTo.timeout = %%-input-timeout-%%
|
### option: Locator.dragTo.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -986,7 +983,7 @@ Value to set for the `<input>`, `<textarea>` or `[contenteditable]` element.
|
||||||
### option: Locator.fill.force = %%-input-force-%%
|
### option: Locator.fill.force = %%-input-force-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.fill.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.fill.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.fill.timeout = %%-input-timeout-%%
|
### option: Locator.fill.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -1248,7 +1245,6 @@ This method hovers over the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
||||||
|
|
@ -1273,7 +1269,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Locator.hover.trial = %%-input-trial-%%
|
### option: Locator.hover.trial = %%-input-trial-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.hover.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.hover.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.28
|
* since: v1.28
|
||||||
|
|
||||||
## async method: Locator.innerHTML
|
## async method: Locator.innerHTML
|
||||||
|
|
@ -1876,7 +1872,7 @@ String of characters to sequentially press into a focused element.
|
||||||
|
|
||||||
Time to wait between key presses in milliseconds. Defaults to 0.
|
Time to wait between key presses in milliseconds. Defaults to 0.
|
||||||
|
|
||||||
### option: Locator.pressSequentially.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.pressSequentially.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.38
|
* since: v1.38
|
||||||
|
|
||||||
### option: Locator.pressSequentially.timeout = %%-input-timeout-%%
|
### option: Locator.pressSequentially.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -2133,7 +2129,6 @@ This method checks or unchecks an element by performing the following steps:
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -2145,7 +2140,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Locator.setChecked.force = %%-input-force-%%
|
### option: Locator.setChecked.force = %%-input-force-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: Locator.setChecked.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.setChecked.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: Locator.setChecked.position = %%-input-position-%%
|
### option: Locator.setChecked.position = %%-input-position-%%
|
||||||
|
|
@ -2286,7 +2281,7 @@ This method expects [Locator] to point to an
|
||||||
### param: Locator.setInputFiles.files = %%-input-files-%%
|
### param: Locator.setInputFiles.files = %%-input-files-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.setInputFiles.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.setInputFiles.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.setInputFiles.timeout = %%-input-timeout-%%
|
### option: Locator.setInputFiles.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -2306,7 +2301,6 @@ This method taps the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
||||||
|
|
@ -2326,7 +2320,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Locator.tap.force = %%-input-force-%%
|
### option: Locator.tap.force = %%-input-force-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.tap.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.tap.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.tap.timeout = %%-input-timeout-%%
|
### option: Locator.tap.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -2376,7 +2370,7 @@ A text to type into a focused element.
|
||||||
|
|
||||||
Time to wait between key presses in milliseconds. Defaults to 0.
|
Time to wait between key presses in milliseconds. Defaults to 0.
|
||||||
|
|
||||||
### option: Locator.type.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.type.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.type.timeout = %%-input-timeout-%%
|
### option: Locator.type.timeout = %%-input-timeout-%%
|
||||||
|
|
@ -2420,7 +2414,6 @@ This method unchecks the element by performing the following steps:
|
||||||
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
1. Wait for [actionability](../actionability.md) checks on the element, unless [`option: force`] option is set.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now unchecked. If not, this method throws.
|
1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
|
|
||||||
If the element is detached from the DOM at any moment during the action, this method throws.
|
If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -2434,7 +2427,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Locator.uncheck.force = %%-input-force-%%
|
### option: Locator.uncheck.force = %%-input-force-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.uncheck.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Locator.uncheck.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.14
|
* since: v1.14
|
||||||
|
|
||||||
### option: Locator.uncheck.timeout = %%-input-timeout-%%
|
### option: Locator.uncheck.timeout = %%-input-timeout-%%
|
||||||
|
|
|
||||||
|
|
@ -735,7 +735,6 @@ This method checks an element matching [`param: selector`] by performing the fol
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked. If not, this method throws.
|
1. Ensure that the element is now checked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -747,7 +746,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Page.check.force = %%-input-force-%%
|
### option: Page.check.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.check.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.check.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.check.position = %%-input-position-%%
|
### option: Page.check.position = %%-input-position-%%
|
||||||
|
|
@ -879,8 +878,6 @@ This method double clicks an element matching [`param: selector`] by performing
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to double click in the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set. Note that
|
|
||||||
if the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
[TimeoutError]. Passing zero timeout disables this.
|
[TimeoutError]. Passing zero timeout disables this.
|
||||||
|
|
@ -904,7 +901,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Page.dblclick.modifiers = %%-input-modifiers-%%
|
### option: Page.dblclick.modifiers = %%-input-modifiers-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.dblclick.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.dblclick.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.dblclick.position = %%-input-position-%%
|
### option: Page.dblclick.position = %%-input-position-%%
|
||||||
|
|
@ -1092,7 +1089,7 @@ await Page.DragAndDropAsync("#source", "#target", new()
|
||||||
### option: Page.dragAndDrop.force = %%-input-force-%%
|
### option: Page.dragAndDrop.force = %%-input-force-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: Page.dragAndDrop.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.dragAndDrop.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: Page.dragAndDrop.strict = %%-input-strict-%%
|
### option: Page.dragAndDrop.strict = %%-input-strict-%%
|
||||||
|
|
@ -2050,7 +2047,7 @@ Value to fill for the `<input>`, `<textarea>` or `[contenteditable]` element.
|
||||||
### option: Page.fill.force = %%-input-force-%%
|
### option: Page.fill.force = %%-input-force-%%
|
||||||
* since: v1.13
|
* since: v1.13
|
||||||
|
|
||||||
### option: Page.fill.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.fill.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.fill.strict = %%-input-strict-%%
|
### option: Page.fill.strict = %%-input-strict-%%
|
||||||
|
|
@ -2411,7 +2408,6 @@ This method hovers over an element matching [`param: selector`] by performing th
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.mouse`] to hover over the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
[TimeoutError]. Passing zero timeout disables this.
|
[TimeoutError]. Passing zero timeout disables this.
|
||||||
|
|
@ -2440,7 +2436,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Page.hover.trial = %%-input-trial-%%
|
### option: Page.hover.trial = %%-input-trial-%%
|
||||||
* since: v1.11
|
* since: v1.11
|
||||||
|
|
||||||
### option: Page.hover.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.hover.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.28
|
* since: v1.28
|
||||||
|
|
||||||
## async method: Page.innerHTML
|
## async method: Page.innerHTML
|
||||||
|
|
@ -3742,7 +3738,6 @@ This method checks or unchecks an element matching [`param: selector`] by perfor
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -3757,7 +3752,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Page.setChecked.force = %%-input-force-%%
|
### option: Page.setChecked.force = %%-input-force-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: Page.setChecked.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.setChecked.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.15
|
* since: v1.15
|
||||||
|
|
||||||
### option: Page.setChecked.position = %%-input-position-%%
|
### option: Page.setChecked.position = %%-input-position-%%
|
||||||
|
|
@ -3865,7 +3860,7 @@ This method expects [`param: selector`] to point to an
|
||||||
### param: Page.setInputFiles.files = %%-input-files-%%
|
### param: Page.setInputFiles.files = %%-input-files-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.setInputFiles.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.setInputFiles.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.setInputFiles.strict = %%-input-strict-%%
|
### option: Page.setInputFiles.strict = %%-input-strict-%%
|
||||||
|
|
@ -3949,7 +3944,6 @@ This method taps an element matching [`param: selector`] by performing the follo
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
1. Use [`property: Page.touchscreen`] to tap the center of the element, or the specified [`option: position`].
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
[TimeoutError]. Passing zero timeout disables this.
|
[TimeoutError]. Passing zero timeout disables this.
|
||||||
|
|
@ -3967,7 +3961,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Page.tap.modifiers = %%-input-modifiers-%%
|
### option: Page.tap.modifiers = %%-input-modifiers-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.tap.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.tap.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.tap.position = %%-input-position-%%
|
### option: Page.tap.position = %%-input-position-%%
|
||||||
|
|
@ -4040,7 +4034,7 @@ A text to type into a focused element.
|
||||||
|
|
||||||
Time to wait between key presses in milliseconds. Defaults to 0.
|
Time to wait between key presses in milliseconds. Defaults to 0.
|
||||||
|
|
||||||
### option: Page.type.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.type.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.type.strict = %%-input-strict-%%
|
### option: Page.type.strict = %%-input-strict-%%
|
||||||
|
|
@ -4065,7 +4059,6 @@ This method unchecks an element matching [`param: selector`] by performing the f
|
||||||
set. If the element is detached during the checks, the whole action is retried.
|
set. If the element is detached during the checks, the whole action is retried.
|
||||||
1. Scroll the element into view if needed.
|
1. Scroll the element into view if needed.
|
||||||
1. Use [`property: Page.mouse`] to click in the center of the element.
|
1. Use [`property: Page.mouse`] to click in the center of the element.
|
||||||
1. Wait for initiated navigations to either succeed or fail, unless [`option: noWaitAfter`] option is set.
|
|
||||||
1. Ensure that the element is now unchecked. If not, this method throws.
|
1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
|
|
||||||
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
When all steps combined have not finished during the specified [`option: timeout`], this method throws a
|
||||||
|
|
@ -4077,7 +4070,7 @@ When all steps combined have not finished during the specified [`option: timeout
|
||||||
### option: Page.uncheck.force = %%-input-force-%%
|
### option: Page.uncheck.force = %%-input-force-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.uncheck.noWaitAfter = %%-input-no-wait-after-%%
|
### option: Page.uncheck.noWaitAfter = %%-input-no-wait-after-removed-%%
|
||||||
* since: v1.8
|
* since: v1.8
|
||||||
|
|
||||||
### option: Page.uncheck.position = %%-input-position-%%
|
### option: Page.uncheck.position = %%-input-position-%%
|
||||||
|
|
|
||||||
|
|
@ -62,12 +62,19 @@ Maximum time in milliseconds. Defaults to `0` - no timeout. The default value ca
|
||||||
[`method: Page.setDefaultTimeout`] methods.
|
[`method: Page.setDefaultTimeout`] methods.
|
||||||
|
|
||||||
## input-no-wait-after
|
## input-no-wait-after
|
||||||
|
* deprecated: This option will default to `true` in the future.
|
||||||
- `noWaitAfter` <[boolean]>
|
- `noWaitAfter` <[boolean]>
|
||||||
|
|
||||||
Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can
|
Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You can
|
||||||
opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating
|
opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as navigating
|
||||||
to inaccessible pages. Defaults to `false`.
|
to inaccessible pages. Defaults to `false`.
|
||||||
|
|
||||||
|
## input-no-wait-after-removed
|
||||||
|
* deprecated: This option has no effect.
|
||||||
|
- `noWaitAfter` <[boolean]>
|
||||||
|
|
||||||
|
This option has no effect.
|
||||||
|
|
||||||
## input-force
|
## input-force
|
||||||
- `force` <[boolean]>
|
- `force` <[boolean]>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1424,7 +1424,6 @@ scheme.FrameCheckParams = tObject({
|
||||||
selector: tString,
|
selector: tString,
|
||||||
strict: tOptional(tBoolean),
|
strict: tOptional(tBoolean),
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
|
|
@ -1452,7 +1451,6 @@ scheme.FrameDragAndDropParams = tObject({
|
||||||
source: tString,
|
source: tString,
|
||||||
target: tString,
|
target: tString,
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
sourcePosition: tOptional(tType('Point')),
|
sourcePosition: tOptional(tType('Point')),
|
||||||
|
|
@ -1464,7 +1462,6 @@ scheme.FrameDblclickParams = tObject({
|
||||||
selector: tString,
|
selector: tString,
|
||||||
strict: tOptional(tBoolean),
|
strict: tOptional(tBoolean),
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
delay: tOptional(tNumber),
|
delay: tOptional(tNumber),
|
||||||
|
|
@ -1503,7 +1500,6 @@ scheme.FrameFillParams = tObject({
|
||||||
value: tString,
|
value: tString,
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
});
|
});
|
||||||
scheme.FrameFillResult = tOptional(tObject({}));
|
scheme.FrameFillResult = tOptional(tObject({}));
|
||||||
scheme.FrameFocusParams = tObject({
|
scheme.FrameFocusParams = tObject({
|
||||||
|
|
@ -1546,7 +1542,6 @@ scheme.FrameHoverParams = tObject({
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
});
|
});
|
||||||
scheme.FrameHoverResult = tOptional(tObject({}));
|
scheme.FrameHoverResult = tOptional(tObject({}));
|
||||||
scheme.FrameInnerHTMLParams = tObject({
|
scheme.FrameInnerHTMLParams = tObject({
|
||||||
|
|
@ -1683,14 +1678,12 @@ scheme.FrameSetInputFilesParams = tObject({
|
||||||
localPaths: tOptional(tArray(tString)),
|
localPaths: tOptional(tArray(tString)),
|
||||||
streams: tOptional(tArray(tChannel(['WritableStream']))),
|
streams: tOptional(tArray(tChannel(['WritableStream']))),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
});
|
});
|
||||||
scheme.FrameSetInputFilesResult = tOptional(tObject({}));
|
scheme.FrameSetInputFilesResult = tOptional(tObject({}));
|
||||||
scheme.FrameTapParams = tObject({
|
scheme.FrameTapParams = tObject({
|
||||||
selector: tString,
|
selector: tString,
|
||||||
strict: tOptional(tBoolean),
|
strict: tOptional(tBoolean),
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
|
|
@ -1714,7 +1707,6 @@ scheme.FrameTypeParams = tObject({
|
||||||
strict: tOptional(tBoolean),
|
strict: tOptional(tBoolean),
|
||||||
text: tString,
|
text: tString,
|
||||||
delay: tOptional(tNumber),
|
delay: tOptional(tNumber),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
});
|
});
|
||||||
scheme.FrameTypeResult = tOptional(tObject({}));
|
scheme.FrameTypeResult = tOptional(tObject({}));
|
||||||
|
|
@ -1722,7 +1714,6 @@ scheme.FrameUncheckParams = tObject({
|
||||||
selector: tString,
|
selector: tString,
|
||||||
strict: tOptional(tBoolean),
|
strict: tOptional(tBoolean),
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
|
|
@ -1877,7 +1868,6 @@ scheme.ElementHandleBoundingBoxResult = tObject({
|
||||||
});
|
});
|
||||||
scheme.ElementHandleCheckParams = tObject({
|
scheme.ElementHandleCheckParams = tObject({
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
|
|
@ -1901,7 +1891,6 @@ scheme.ElementHandleContentFrameResult = tObject({
|
||||||
});
|
});
|
||||||
scheme.ElementHandleDblclickParams = tObject({
|
scheme.ElementHandleDblclickParams = tObject({
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
delay: tOptional(tNumber),
|
delay: tOptional(tNumber),
|
||||||
|
|
@ -1919,7 +1908,6 @@ scheme.ElementHandleFillParams = tObject({
|
||||||
value: tString,
|
value: tString,
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
});
|
});
|
||||||
scheme.ElementHandleFillResult = tOptional(tObject({}));
|
scheme.ElementHandleFillResult = tOptional(tObject({}));
|
||||||
scheme.ElementHandleFocusParams = tOptional(tObject({}));
|
scheme.ElementHandleFocusParams = tOptional(tObject({}));
|
||||||
|
|
@ -1936,7 +1924,6 @@ scheme.ElementHandleHoverParams = tObject({
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
});
|
});
|
||||||
scheme.ElementHandleHoverResult = tOptional(tObject({}));
|
scheme.ElementHandleHoverResult = tOptional(tObject({}));
|
||||||
scheme.ElementHandleInnerHTMLParams = tOptional(tObject({}));
|
scheme.ElementHandleInnerHTMLParams = tOptional(tObject({}));
|
||||||
|
|
@ -2052,12 +2039,10 @@ scheme.ElementHandleSetInputFilesParams = tObject({
|
||||||
localPaths: tOptional(tArray(tString)),
|
localPaths: tOptional(tArray(tString)),
|
||||||
streams: tOptional(tArray(tChannel(['WritableStream']))),
|
streams: tOptional(tArray(tChannel(['WritableStream']))),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
});
|
});
|
||||||
scheme.ElementHandleSetInputFilesResult = tOptional(tObject({}));
|
scheme.ElementHandleSetInputFilesResult = tOptional(tObject({}));
|
||||||
scheme.ElementHandleTapParams = tObject({
|
scheme.ElementHandleTapParams = tObject({
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
modifiers: tOptional(tArray(tEnum(['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift']))),
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
|
|
@ -2071,13 +2056,11 @@ scheme.ElementHandleTextContentResult = tObject({
|
||||||
scheme.ElementHandleTypeParams = tObject({
|
scheme.ElementHandleTypeParams = tObject({
|
||||||
text: tString,
|
text: tString,
|
||||||
delay: tOptional(tNumber),
|
delay: tOptional(tNumber),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
});
|
});
|
||||||
scheme.ElementHandleTypeResult = tOptional(tObject({}));
|
scheme.ElementHandleTypeResult = tOptional(tObject({}));
|
||||||
scheme.ElementHandleUncheckParams = tObject({
|
scheme.ElementHandleUncheckParams = tObject({
|
||||||
force: tOptional(tBoolean),
|
force: tOptional(tBoolean),
|
||||||
noWaitAfter: tOptional(tBoolean),
|
|
||||||
position: tOptional(tType('Point')),
|
position: tOptional(tType('Point')),
|
||||||
timeout: tOptional(tNumber),
|
timeout: tOptional(tNumber),
|
||||||
trial: tOptional(tBoolean),
|
trial: tOptional(tBoolean),
|
||||||
|
|
|
||||||
|
|
@ -342,7 +342,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async _retryPointerAction(progress: Progress, actionName: ActionName, waitForEnabled: boolean, action: (point: types.Point) => Promise<void>,
|
async _retryPointerAction(progress: Progress, actionName: ActionName, waitForEnabled: boolean, action: (point: types.Point) => Promise<void>,
|
||||||
options: types.PointerActionOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
options: { waitAfter: boolean | 'disabled' } & types.PointerActionOptions & types.PointerActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
// Note: do not perform locator handlers checkpoint to avoid moving the mouse in the middle of a drag operation.
|
// Note: do not perform locator handlers checkpoint to avoid moving the mouse in the middle of a drag operation.
|
||||||
const skipLocatorHandlersCheckpoint = actionName === 'move and up';
|
const skipLocatorHandlersCheckpoint = actionName === 'move and up';
|
||||||
return await this._retryAction(progress, actionName, async retry => {
|
return await this._retryAction(progress, actionName, async retry => {
|
||||||
|
|
@ -361,7 +361,14 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, { ...options, skipLocatorHandlersCheckpoint });
|
}, { ...options, skipLocatorHandlersCheckpoint });
|
||||||
}
|
}
|
||||||
|
|
||||||
async _performPointerAction(progress: Progress, actionName: ActionName, waitForEnabled: boolean, action: (point: types.Point) => Promise<void>, forceScrollOptions: ScrollIntoViewOptions | undefined, options: types.PointerActionOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<PerformActionResult> {
|
async _performPointerAction(
|
||||||
|
progress: Progress,
|
||||||
|
actionName: ActionName,
|
||||||
|
waitForEnabled: boolean,
|
||||||
|
action: (point: types.Point) => Promise<void>,
|
||||||
|
forceScrollOptions: ScrollIntoViewOptions | undefined,
|
||||||
|
options: { waitAfter: boolean | 'disabled' } & types.PointerActionOptions & types.PointerActionWaitOptions,
|
||||||
|
): Promise<PerformActionResult> {
|
||||||
const { force = false, position } = options;
|
const { force = false, position } = options;
|
||||||
|
|
||||||
const doScrollIntoView = async () => {
|
const doScrollIntoView = async () => {
|
||||||
|
|
@ -444,7 +451,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const actionResult = await this._page._frameManager.waitForSignalsCreatedBy(progress, options.noWaitAfter, async () => {
|
const actionResult = await this._page._frameManager.waitForSignalsCreatedBy(progress, options.waitAfter === true, async () => {
|
||||||
if ((options as any).__testHookBeforePointerAction)
|
if ((options as any).__testHookBeforePointerAction)
|
||||||
await (options as any).__testHookBeforePointerAction();
|
await (options as any).__testHookBeforePointerAction();
|
||||||
progress.throwIfAborted(); // Avoid action that has side-effects.
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
||||||
|
|
@ -456,10 +463,12 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
if (restoreModifiers)
|
if (restoreModifiers)
|
||||||
await this._page.keyboard.ensureModifiers(restoreModifiers);
|
await this._page.keyboard.ensureModifiers(restoreModifiers);
|
||||||
if (hitTargetInterceptionHandle) {
|
if (hitTargetInterceptionHandle) {
|
||||||
const stopHitTargetInterception = hitTargetInterceptionHandle.evaluate(h => h.stop()).catch(e => 'done' as const).finally(() => {
|
const stopHitTargetInterception = this._frame.raceAgainstEvaluationStallingEvents(() => {
|
||||||
|
return hitTargetInterceptionHandle.evaluate(h => h.stop());
|
||||||
|
}).catch(e => 'done' as const).finally(() => {
|
||||||
hitTargetInterceptionHandle?.dispose();
|
hitTargetInterceptionHandle?.dispose();
|
||||||
});
|
});
|
||||||
if (!options.noWaitAfter) {
|
if (options.waitAfter !== false) {
|
||||||
// When noWaitAfter is passed, we do not want to accidentally stall on
|
// When noWaitAfter is passed, we do not want to accidentally stall on
|
||||||
// non-committed navigation blocking the evaluate.
|
// non-committed navigation blocking the evaluate.
|
||||||
const hitTargetResult = await stopHitTargetInterception;
|
const hitTargetResult = await stopHitTargetInterception;
|
||||||
|
|
@ -472,7 +481,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
if ((options as any).__testHookAfterPointerAction)
|
if ((options as any).__testHookAfterPointerAction)
|
||||||
await (options as any).__testHookAfterPointerAction();
|
await (options as any).__testHookAfterPointerAction();
|
||||||
return 'done';
|
return 'done';
|
||||||
}, 'input');
|
});
|
||||||
if (actionResult !== 'done')
|
if (actionResult !== 'done')
|
||||||
return actionResult;
|
return actionResult;
|
||||||
progress.log(' navigations have finished');
|
progress.log(' navigations have finished');
|
||||||
|
|
@ -487,23 +496,23 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
_hover(progress: Progress, options: types.PointerActionOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
_hover(progress: Progress, options: types.PointerActionOptions & types.PointerActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
return this._retryPointerAction(progress, 'hover', false /* waitForEnabled */, point => this._page.mouse.move(point.x, point.y), options);
|
return this._retryPointerAction(progress, 'hover', false /* waitForEnabled */, point => this._page.mouse.move(point.x, point.y), { ...options, waitAfter: 'disabled' });
|
||||||
}
|
}
|
||||||
|
|
||||||
async click(metadata: CallMetadata, options: types.MouseClickOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}): Promise<void> {
|
async click(metadata: CallMetadata, options: { noWaitAfter?: boolean } & types.MouseClickOptions & types.PointerActionWaitOptions = {}): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._click(progress, options);
|
const result = await this._click(progress, { ...options, waitAfter: !options.noWaitAfter });
|
||||||
return assertDone(throwRetargetableDOMError(result));
|
return assertDone(throwRetargetableDOMError(result));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
_click(progress: Progress, options: types.MouseClickOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
_click(progress: Progress, options: { waitAfter: boolean | 'disabled' } & types.MouseClickOptions & types.PointerActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
return this._retryPointerAction(progress, 'click', true /* waitForEnabled */, point => this._page.mouse.click(point.x, point.y, options), options);
|
return this._retryPointerAction(progress, 'click', true /* waitForEnabled */, point => this._page.mouse.click(point.x, point.y, options), options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async dblclick(metadata: CallMetadata, options: types.MouseMultiClickOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<void> {
|
async dblclick(metadata: CallMetadata, options: types.MouseMultiClickOptions & types.PointerActionWaitOptions): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._dblclick(progress, options);
|
const result = await this._dblclick(progress, options);
|
||||||
|
|
@ -511,11 +520,11 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
_dblclick(progress: Progress, options: types.MouseMultiClickOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
_dblclick(progress: Progress, options: types.MouseMultiClickOptions & types.PointerActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
return this._retryPointerAction(progress, 'dblclick', true /* waitForEnabled */, point => this._page.mouse.dblclick(point.x, point.y, options), options);
|
return this._retryPointerAction(progress, 'dblclick', true /* waitForEnabled */, point => this._page.mouse.dblclick(point.x, point.y, options), { ...options, waitAfter: 'disabled' });
|
||||||
}
|
}
|
||||||
|
|
||||||
async tap(metadata: CallMetadata, options: types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}): Promise<void> {
|
async tap(metadata: CallMetadata, options: types.PointerActionWaitOptions = {}): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._tap(progress, options);
|
const result = await this._tap(progress, options);
|
||||||
|
|
@ -523,11 +532,11 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
_tap(progress: Progress, options: types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
_tap(progress: Progress, options: types.PointerActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
return this._retryPointerAction(progress, 'tap', true /* waitForEnabled */, point => this._page.touchscreen.tap(point.x, point.y), options);
|
return this._retryPointerAction(progress, 'tap', true /* waitForEnabled */, point => this._page.touchscreen.tap(point.x, point.y), { ...options, waitAfter: 'disabled' });
|
||||||
}
|
}
|
||||||
|
|
||||||
async selectOption(metadata: CallMetadata, elements: ElementHandle[], values: types.SelectOption[], options: types.NavigatingActionWaitOptions & types.ForceOptions): Promise<string[]> {
|
async selectOption(metadata: CallMetadata, elements: ElementHandle[], values: types.SelectOption[], options: { noWaitAfter?: boolean } & types.CommonActionOptions): Promise<string[]> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._selectOption(progress, elements, values, options);
|
const result = await this._selectOption(progress, elements, values, options);
|
||||||
|
|
@ -535,7 +544,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async _selectOption(progress: Progress, elements: ElementHandle[], values: types.SelectOption[], options: types.NavigatingActionWaitOptions & types.ForceOptions): Promise<string[] | 'error:notconnected'> {
|
async _selectOption(progress: Progress, elements: ElementHandle[], values: types.SelectOption[], options: { noWaitAfter?: boolean } & types.CommonActionOptions): Promise<string[] | 'error:notconnected'> {
|
||||||
let resultingOptions: string[] = [];
|
let resultingOptions: string[] = [];
|
||||||
await this._retryAction(progress, 'select option', async () => {
|
await this._retryAction(progress, 'select option', async () => {
|
||||||
await progress.beforeInputAction(this);
|
await progress.beforeInputAction(this);
|
||||||
|
|
@ -560,7 +569,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
return resultingOptions;
|
return resultingOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
async fill(metadata: CallMetadata, value: string, options: types.NavigatingActionWaitOptions & types.ForceOptions = {}): Promise<void> {
|
async fill(metadata: CallMetadata, value: string, options: types.CommonActionOptions = {}): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._fill(progress, value, options);
|
const result = await this._fill(progress, value, options);
|
||||||
|
|
@ -568,36 +577,34 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async _fill(progress: Progress, value: string, options: types.NavigatingActionWaitOptions & types.ForceOptions): Promise<'error:notconnected' | 'done'> {
|
async _fill(progress: Progress, value: string, options: types.CommonActionOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
progress.log(` fill("${value}")`);
|
progress.log(` fill("${value}")`);
|
||||||
return await this._retryAction(progress, 'fill', async () => {
|
return await this._retryAction(progress, 'fill', async () => {
|
||||||
await progress.beforeInputAction(this);
|
await progress.beforeInputAction(this);
|
||||||
return this._page._frameManager.waitForSignalsCreatedBy(progress, options.noWaitAfter, async () => {
|
if (!options.force)
|
||||||
if (!options.force)
|
progress.log(' waiting for element to be visible, enabled and editable');
|
||||||
progress.log(' waiting for element to be visible, enabled and editable');
|
const result = await this.evaluateInUtility(async ([injected, node, { value, force }]) => {
|
||||||
const result = await this.evaluateInUtility(async ([injected, node, { value, force }]) => {
|
if (!force) {
|
||||||
if (!force) {
|
const checkResult = await injected.checkElementStates(node, ['visible', 'enabled', 'editable']);
|
||||||
const checkResult = await injected.checkElementStates(node, ['visible', 'enabled', 'editable']);
|
if (checkResult)
|
||||||
if (checkResult)
|
return checkResult;
|
||||||
return checkResult;
|
|
||||||
}
|
|
||||||
return injected.fill(node, value);
|
|
||||||
}, { value, force: options.force });
|
|
||||||
progress.throwIfAborted(); // Avoid action that has side-effects.
|
|
||||||
if (result === 'needsinput') {
|
|
||||||
if (value)
|
|
||||||
await this._page.keyboard.insertText(value);
|
|
||||||
else
|
|
||||||
await this._page.keyboard.press('Delete');
|
|
||||||
return 'done';
|
|
||||||
} else {
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}, 'input');
|
return injected.fill(node, value);
|
||||||
|
}, { value, force: options.force });
|
||||||
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
||||||
|
if (result === 'needsinput') {
|
||||||
|
if (value)
|
||||||
|
await this._page.keyboard.insertText(value);
|
||||||
|
else
|
||||||
|
await this._page.keyboard.press('Delete');
|
||||||
|
return 'done';
|
||||||
|
} else {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}, options);
|
}, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
async selectText(metadata: CallMetadata, options: types.TimeoutOptions & types.ForceOptions = {}): Promise<void> {
|
async selectText(metadata: CallMetadata, options: types.CommonActionOptions = {}): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._retryAction(progress, 'selectText', async () => {
|
const result = await this._retryAction(progress, 'selectText', async () => {
|
||||||
|
|
@ -620,12 +627,12 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
const inputFileItems = await prepareFilesForUpload(this._frame, params);
|
const inputFileItems = await prepareFilesForUpload(this._frame, params);
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._setInputFiles(progress, inputFileItems, params);
|
const result = await this._setInputFiles(progress, inputFileItems);
|
||||||
return assertDone(throwRetargetableDOMError(result));
|
return assertDone(throwRetargetableDOMError(result));
|
||||||
}, this._page._timeoutSettings.timeout(params));
|
}, this._page._timeoutSettings.timeout(params));
|
||||||
}
|
}
|
||||||
|
|
||||||
async _setInputFiles(progress: Progress, items: InputFilesItems, options: types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
async _setInputFiles(progress: Progress, items: InputFilesItems): Promise<'error:notconnected' | 'done'> {
|
||||||
const { filePayloads, localPaths, localDirectory } = items;
|
const { filePayloads, localPaths, localDirectory } = items;
|
||||||
const multiple = filePayloads && filePayloads.length > 1 || localPaths && localPaths.length > 1;
|
const multiple = filePayloads && filePayloads.length > 1 || localPaths && localPaths.length > 1;
|
||||||
const result = await this.evaluateHandleInUtility(([injected, node, { multiple, directoryUpload }]): Element | undefined => {
|
const result = await this.evaluateHandleInUtility(([injected, node, { multiple, directoryUpload }]): Element | undefined => {
|
||||||
|
|
@ -647,23 +654,21 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
return 'error:notconnected';
|
return 'error:notconnected';
|
||||||
const retargeted = result.asElement() as ElementHandle<HTMLInputElement>;
|
const retargeted = result.asElement() as ElementHandle<HTMLInputElement>;
|
||||||
await progress.beforeInputAction(this);
|
await progress.beforeInputAction(this);
|
||||||
await this._page._frameManager.waitForSignalsCreatedBy(progress, options.noWaitAfter, async () => {
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
||||||
progress.throwIfAborted(); // Avoid action that has side-effects.
|
if (localPaths || localDirectory) {
|
||||||
if (localPaths || localDirectory) {
|
const localPathsOrDirectory = localDirectory ? [localDirectory] : localPaths!;
|
||||||
const localPathsOrDirectory = localDirectory ? [localDirectory] : localPaths!;
|
await Promise.all((localPathsOrDirectory).map(localPath => (
|
||||||
await Promise.all((localPathsOrDirectory).map(localPath => (
|
fs.promises.access(localPath, fs.constants.F_OK)
|
||||||
fs.promises.access(localPath, fs.constants.F_OK)
|
)));
|
||||||
)));
|
// Browsers traverse the given directory asynchronously and we want to ensure all files are uploaded.
|
||||||
// Browsers traverse the given directory asynchronously and we want to ensure all files are uploaded.
|
const waitForInputEvent = localDirectory ? this.evaluate(node => new Promise<any>(fulfill => {
|
||||||
const waitForInputEvent = localDirectory ? this.evaluate(node => new Promise<any>(fulfill => {
|
node.addEventListener('input', fulfill, { once: true });
|
||||||
node.addEventListener('input', fulfill, { once: true });
|
})).catch(() => {}) : Promise.resolve();
|
||||||
})).catch(() => {}) : Promise.resolve();
|
await this._page._delegate.setInputFilePaths(retargeted, localPathsOrDirectory);
|
||||||
await this._page._delegate.setInputFilePaths(retargeted, localPathsOrDirectory);
|
await waitForInputEvent;
|
||||||
await waitForInputEvent;
|
} else {
|
||||||
} else {
|
await this._page._delegate.setInputFiles(retargeted, filePayloads!);
|
||||||
await this._page._delegate.setInputFiles(retargeted, filePayloads!);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
return 'done';
|
return 'done';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -685,7 +690,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
return await this.evaluateInUtility(([injected, node]) => injected.blurNode(node), {});
|
return await this.evaluateInUtility(([injected, node]) => injected.blurNode(node), {});
|
||||||
}
|
}
|
||||||
|
|
||||||
async type(metadata: CallMetadata, text: string, options: { delay?: number } & types.NavigatingActionWaitOptions): Promise<void> {
|
async type(metadata: CallMetadata, text: string, options: { delay?: number } & types.TimeoutOptions & types.StrictOptions): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._type(progress, text, options);
|
const result = await this._type(progress, text, options);
|
||||||
|
|
@ -693,20 +698,18 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async _type(progress: Progress, text: string, options: { delay?: number } & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
async _type(progress: Progress, text: string, options: { delay?: number } & types.TimeoutOptions & types.StrictOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
progress.log(`elementHandle.type("${text}")`);
|
progress.log(`elementHandle.type("${text}")`);
|
||||||
await progress.beforeInputAction(this);
|
await progress.beforeInputAction(this);
|
||||||
return this._page._frameManager.waitForSignalsCreatedBy(progress, options.noWaitAfter, async () => {
|
const result = await this._focus(progress, true /* resetSelectionIfNotFocused */);
|
||||||
const result = await this._focus(progress, true /* resetSelectionIfNotFocused */);
|
if (result !== 'done')
|
||||||
if (result !== 'done')
|
return result;
|
||||||
return result;
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
||||||
progress.throwIfAborted(); // Avoid action that has side-effects.
|
await this._page.keyboard.type(text, options);
|
||||||
await this._page.keyboard.type(text, options);
|
return 'done';
|
||||||
return 'done';
|
|
||||||
}, 'input');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async press(metadata: CallMetadata, key: string, options: { delay?: number } & types.NavigatingActionWaitOptions): Promise<void> {
|
async press(metadata: CallMetadata, key: string, options: { delay?: number, noWaitAfter?: boolean } & types.TimeoutOptions & types.StrictOptions): Promise<void> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._press(progress, key, options);
|
const result = await this._press(progress, key, options);
|
||||||
|
|
@ -714,20 +717,20 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async _press(progress: Progress, key: string, options: { delay?: number } & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
async _press(progress: Progress, key: string, options: { delay?: number, noWaitAfter?: boolean } & types.TimeoutOptions & types.StrictOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
progress.log(`elementHandle.press("${key}")`);
|
progress.log(`elementHandle.press("${key}")`);
|
||||||
await progress.beforeInputAction(this);
|
await progress.beforeInputAction(this);
|
||||||
return this._page._frameManager.waitForSignalsCreatedBy(progress, options.noWaitAfter, async () => {
|
return this._page._frameManager.waitForSignalsCreatedBy(progress, !options.noWaitAfter, async () => {
|
||||||
const result = await this._focus(progress, true /* resetSelectionIfNotFocused */);
|
const result = await this._focus(progress, true /* resetSelectionIfNotFocused */);
|
||||||
if (result !== 'done')
|
if (result !== 'done')
|
||||||
return result;
|
return result;
|
||||||
progress.throwIfAborted(); // Avoid action that has side-effects.
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
||||||
await this._page.keyboard.press(key, options);
|
await this._page.keyboard.press(key, options);
|
||||||
return 'done';
|
return 'done';
|
||||||
}, 'input');
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async check(metadata: CallMetadata, options: { position?: types.Point } & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions) {
|
async check(metadata: CallMetadata, options: { position?: types.Point } & types.PointerActionWaitOptions) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._setChecked(progress, true, options);
|
const result = await this._setChecked(progress, true, options);
|
||||||
|
|
@ -735,7 +738,7 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async uncheck(metadata: CallMetadata, options: { position?: types.Point } & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions) {
|
async uncheck(metadata: CallMetadata, options: { position?: types.Point } & types.PointerActionWaitOptions) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
const result = await this._setChecked(progress, false, options);
|
const result = await this._setChecked(progress, false, options);
|
||||||
|
|
@ -743,14 +746,14 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async _setChecked(progress: Progress, state: boolean, options: { position?: types.Point } & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
async _setChecked(progress: Progress, state: boolean, options: { position?: types.Point } & types.PointerActionWaitOptions): Promise<'error:notconnected' | 'done'> {
|
||||||
const isChecked = async () => {
|
const isChecked = async () => {
|
||||||
const result = await this.evaluateInUtility(([injected, node]) => injected.elementState(node, 'checked'), {});
|
const result = await this.evaluateInUtility(([injected, node]) => injected.elementState(node, 'checked'), {});
|
||||||
return throwRetargetableDOMError(result);
|
return throwRetargetableDOMError(result);
|
||||||
};
|
};
|
||||||
if (await isChecked() === state)
|
if (await isChecked() === state)
|
||||||
return 'done';
|
return 'done';
|
||||||
const result = await this._click(progress, options);
|
const result = await this._click(progress, { ...options, waitAfter: 'disabled' });
|
||||||
if (result !== 'done')
|
if (result !== 'done')
|
||||||
return result;
|
return result;
|
||||||
if (options.trial)
|
if (options.trial)
|
||||||
|
|
|
||||||
|
|
@ -161,16 +161,15 @@ export class FrameManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async waitForSignalsCreatedBy<T>(progress: Progress | null, noWaitAfter: boolean | undefined, action: () => Promise<T>, source?: 'input'): Promise<T> {
|
async waitForSignalsCreatedBy<T>(progress: Progress | null, waitAfter: boolean, action: () => Promise<T>): Promise<T> {
|
||||||
if (noWaitAfter)
|
if (!waitAfter)
|
||||||
return action();
|
return action();
|
||||||
const barrier = new SignalBarrier(progress);
|
const barrier = new SignalBarrier(progress);
|
||||||
this._signalBarriers.add(barrier);
|
this._signalBarriers.add(barrier);
|
||||||
if (progress)
|
if (progress)
|
||||||
progress.cleanupWhenAborted(() => this._signalBarriers.delete(barrier));
|
progress.cleanupWhenAborted(() => this._signalBarriers.delete(barrier));
|
||||||
const result = await action();
|
const result = await action();
|
||||||
if (source === 'input')
|
await this._page._delegate.inputActionEpilogue();
|
||||||
await this._page._delegate.inputActionEpilogue();
|
|
||||||
await barrier.waitFor();
|
await barrier.waitFor();
|
||||||
this._signalBarriers.delete(barrier);
|
this._signalBarriers.delete(barrier);
|
||||||
// Resolve in the next task, after all waitForNavigations.
|
// Resolve in the next task, after all waitForNavigations.
|
||||||
|
|
@ -1154,21 +1153,21 @@ export class Frame extends SdkObject {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async click(metadata: CallMetadata, selector: string, options: types.MouseClickOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions) {
|
async click(metadata: CallMetadata, selector: string, options: { noWaitAfter?: boolean } & types.MouseClickOptions & types.PointerActionWaitOptions) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._click(progress, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._click(progress, { ...options, waitAfter: !options.noWaitAfter })));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async dblclick(metadata: CallMetadata, selector: string, options: types.MouseMultiClickOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}) {
|
async dblclick(metadata: CallMetadata, selector: string, options: types.MouseMultiClickOptions & types.PointerActionWaitOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._dblclick(progress, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._dblclick(progress, options)));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async dragAndDrop(metadata: CallMetadata, source: string, target: string, options: types.DragActionOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}) {
|
async dragAndDrop(metadata: CallMetadata, source: string, target: string, options: types.DragActionOptions & types.PointerActionWaitOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
await controller.run(async progress => {
|
await controller.run(async progress => {
|
||||||
dom.assertDone(await this._retryWithProgressIfNotConnected(progress, source, options.strict, !options.force /* performLocatorHandlersCheckpoint */, async handle => {
|
dom.assertDone(await this._retryWithProgressIfNotConnected(progress, source, options.strict, !options.force /* performLocatorHandlersCheckpoint */, async handle => {
|
||||||
|
|
@ -1177,6 +1176,7 @@ export class Frame extends SdkObject {
|
||||||
await this._page.mouse.down();
|
await this._page.mouse.down();
|
||||||
}, {
|
}, {
|
||||||
...options,
|
...options,
|
||||||
|
waitAfter: 'disabled',
|
||||||
position: options.sourcePosition,
|
position: options.sourcePosition,
|
||||||
timeout: progress.timeUntilDeadline(),
|
timeout: progress.timeUntilDeadline(),
|
||||||
});
|
});
|
||||||
|
|
@ -1188,6 +1188,7 @@ export class Frame extends SdkObject {
|
||||||
await this._page.mouse.up();
|
await this._page.mouse.up();
|
||||||
}, {
|
}, {
|
||||||
...options,
|
...options,
|
||||||
|
waitAfter: 'disabled',
|
||||||
position: options.targetPosition,
|
position: options.targetPosition,
|
||||||
timeout: progress.timeUntilDeadline(),
|
timeout: progress.timeUntilDeadline(),
|
||||||
});
|
});
|
||||||
|
|
@ -1195,7 +1196,7 @@ export class Frame extends SdkObject {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async tap(metadata: CallMetadata, selector: string, options: types.PointerActionWaitOptions & types.NavigatingActionWaitOptions) {
|
async tap(metadata: CallMetadata, selector: string, options: types.PointerActionWaitOptions) {
|
||||||
if (!this._page._browserContext._options.hasTouch)
|
if (!this._page._browserContext._options.hasTouch)
|
||||||
throw new Error('The page does not support tap. Use hasTouch context option to enable touch support.');
|
throw new Error('The page does not support tap. Use hasTouch context option to enable touch support.');
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
|
|
@ -1204,7 +1205,7 @@ export class Frame extends SdkObject {
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async fill(metadata: CallMetadata, selector: string, value: string, options: types.NavigatingActionWaitOptions & { force?: boolean }) {
|
async fill(metadata: CallMetadata, selector: string, value: string, options: types.TimeoutOptions & types.StrictOptions & { force?: boolean }) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._fill(progress, value, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._fill(progress, value, options)));
|
||||||
|
|
@ -1325,14 +1326,14 @@ export class Frame extends SdkObject {
|
||||||
return this._elementState(metadata, selector, 'checked', options, scope);
|
return this._elementState(metadata, selector, 'checked', options, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
async hover(metadata: CallMetadata, selector: string, options: types.PointerActionOptions & types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}) {
|
async hover(metadata: CallMetadata, selector: string, options: types.PointerActionOptions & types.PointerActionWaitOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._hover(progress, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._hover(progress, options)));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async selectOption(metadata: CallMetadata, selector: string, elements: dom.ElementHandle[], values: types.SelectOption[], options: types.NavigatingActionWaitOptions & types.ForceOptions = {}): Promise<string[]> {
|
async selectOption(metadata: CallMetadata, selector: string, elements: dom.ElementHandle[], values: types.SelectOption[], options: { noWaitAfter?: boolean } & types.CommonActionOptions = {}): Promise<string[]> {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._selectOption(progress, elements, values, options));
|
return await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._selectOption(progress, elements, values, options));
|
||||||
|
|
@ -1343,32 +1344,32 @@ export class Frame extends SdkObject {
|
||||||
const inputFileItems = await prepareFilesForUpload(this, params);
|
const inputFileItems = await prepareFilesForUpload(this, params);
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, params.strict, true /* performLocatorHandlersCheckpoint */, handle => handle._setInputFiles(progress, inputFileItems, params)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, params.strict, true /* performLocatorHandlersCheckpoint */, handle => handle._setInputFiles(progress, inputFileItems)));
|
||||||
}, this._page._timeoutSettings.timeout(params));
|
}, this._page._timeoutSettings.timeout(params));
|
||||||
}
|
}
|
||||||
|
|
||||||
async type(metadata: CallMetadata, selector: string, text: string, options: { delay?: number } & types.NavigatingActionWaitOptions = {}) {
|
async type(metadata: CallMetadata, selector: string, text: string, options: { delay?: number } & types.TimeoutOptions & types.StrictOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, true /* performLocatorHandlersCheckpoint */, handle => handle._type(progress, text, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, true /* performLocatorHandlersCheckpoint */, handle => handle._type(progress, text, options)));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async press(metadata: CallMetadata, selector: string, key: string, options: { delay?: number } & types.NavigatingActionWaitOptions = {}) {
|
async press(metadata: CallMetadata, selector: string, key: string, options: { delay?: number, noWaitAfter?: boolean } & types.TimeoutOptions & types.StrictOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, true /* performLocatorHandlersCheckpoint */, handle => handle._press(progress, key, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, true /* performLocatorHandlersCheckpoint */, handle => handle._press(progress, key, options)));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async check(metadata: CallMetadata, selector: string, options: types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}) {
|
async check(metadata: CallMetadata, selector: string, options: types.PointerActionWaitOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._setChecked(progress, true, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._setChecked(progress, true, options)));
|
||||||
}, this._page._timeoutSettings.timeout(options));
|
}, this._page._timeoutSettings.timeout(options));
|
||||||
}
|
}
|
||||||
|
|
||||||
async uncheck(metadata: CallMetadata, selector: string, options: types.PointerActionWaitOptions & types.NavigatingActionWaitOptions = {}) {
|
async uncheck(metadata: CallMetadata, selector: string, options: types.PointerActionWaitOptions = {}) {
|
||||||
const controller = new ProgressController(metadata, this);
|
const controller = new ProgressController(metadata, this);
|
||||||
return controller.run(async progress => {
|
return controller.run(async progress => {
|
||||||
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._setChecked(progress, false, options)));
|
return dom.assertDone(await this._retryWithProgressIfNotConnected(progress, selector, options.strict, !options.force /* performLocatorHandlersCheckpoint */, handle => handle._setChecked(progress, false, options)));
|
||||||
|
|
|
||||||
|
|
@ -36,15 +36,11 @@ export type NavigateOptions = TimeoutOptions & {
|
||||||
waitUntil?: LifecycleEvent,
|
waitUntil?: LifecycleEvent,
|
||||||
};
|
};
|
||||||
|
|
||||||
export type NavigatingActionWaitOptions = TimeoutOptions & StrictOptions & {
|
export type CommonActionOptions = TimeoutOptions & StrictOptions & {
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
|
||||||
|
|
||||||
export type ForceOptions = {
|
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
export type PointerActionWaitOptions = TimeoutOptions & ForceOptions & StrictOptions & {
|
export type PointerActionWaitOptions = CommonActionOptions & {
|
||||||
trial?: boolean;
|
trial?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
253
packages/playwright-core/types/types.d.ts
vendored
253
packages/playwright-core/types/types.d.ts
vendored
|
|
@ -1939,7 +1939,6 @@ export interface Page {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked. If not, this method throws.
|
* 1. Ensure that the element is now checked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -1955,9 +1954,8 @@ export interface Page {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -2043,6 +2041,7 @@ export interface Page {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -2121,8 +2120,6 @@ export interface Page {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. Note that if
|
|
||||||
* the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
* TimeoutError}. Passing zero timeout disables this.
|
* TimeoutError}. Passing zero timeout disables this.
|
||||||
|
|
@ -2156,9 +2153,8 @@ export interface Page {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -2281,9 +2277,8 @@ export interface Page {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -2464,9 +2459,8 @@ export interface Page {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -3025,7 +3019,6 @@ export interface Page {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
* TimeoutError}. Passing zero timeout disables this.
|
* TimeoutError}. Passing zero timeout disables this.
|
||||||
|
|
@ -3047,9 +3040,8 @@ export interface Page {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -3604,6 +3596,7 @@ export interface Page {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -3862,6 +3855,7 @@ export interface Page {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -3894,7 +3888,6 @@ export interface Page {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -3911,9 +3904,8 @@ export interface Page {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -4069,9 +4061,8 @@ export interface Page {
|
||||||
buffer: Buffer;
|
buffer: Buffer;
|
||||||
}>, options?: {
|
}>, options?: {
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -4139,7 +4130,6 @@ export interface Page {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
* TimeoutError}. Passing zero timeout disables this.
|
* TimeoutError}. Passing zero timeout disables this.
|
||||||
|
|
@ -4164,9 +4154,8 @@ export interface Page {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -4257,9 +4246,8 @@ export interface Page {
|
||||||
delay?: number;
|
delay?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -4291,7 +4279,6 @@ export interface Page {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -4307,9 +4294,8 @@ export interface Page {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -5644,7 +5630,6 @@ export interface Frame {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked. If not, this method throws.
|
* 1. Ensure that the element is now checked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -5660,9 +5645,8 @@ export interface Frame {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -5750,6 +5734,7 @@ export interface Frame {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -5799,9 +5784,8 @@ export interface Frame {
|
||||||
* the element is detached during the checks, the whole action is retried.
|
* the element is detached during the checks, the whole action is retried.
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`. if the first click of the `dblclick()` triggers a navigation event,
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. Note that if
|
* this method will throw.
|
||||||
* the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
* TimeoutError}. Passing zero timeout disables this.
|
* TimeoutError}. Passing zero timeout disables this.
|
||||||
|
|
@ -5835,9 +5819,8 @@ export interface Frame {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -5946,9 +5929,8 @@ export interface Frame {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -6020,9 +6002,8 @@ export interface Frame {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -6507,7 +6488,6 @@ export interface Frame {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
* TimeoutError}. Passing zero timeout disables this.
|
* TimeoutError}. Passing zero timeout disables this.
|
||||||
|
|
@ -6529,9 +6509,8 @@ export interface Frame {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -6907,6 +6886,7 @@ export interface Frame {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -7001,6 +6981,7 @@ export interface Frame {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -7033,7 +7014,6 @@ export interface Frame {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -7050,9 +7030,8 @@ export interface Frame {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -7165,9 +7144,8 @@ export interface Frame {
|
||||||
buffer: Buffer;
|
buffer: Buffer;
|
||||||
}>, options?: {
|
}>, options?: {
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -7197,7 +7175,6 @@ export interface Frame {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
* TimeoutError}. Passing zero timeout disables this.
|
* TimeoutError}. Passing zero timeout disables this.
|
||||||
|
|
@ -7221,9 +7198,8 @@ export interface Frame {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -7314,9 +7290,8 @@ export interface Frame {
|
||||||
delay?: number;
|
delay?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -7348,7 +7323,6 @@ export interface Frame {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -7364,9 +7338,8 @@ export interface Frame {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -9714,7 +9687,6 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked. If not, this method throws.
|
* 1. Ensure that the element is now checked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -9730,9 +9702,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -9810,6 +9781,7 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -9852,8 +9824,6 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. Note that if
|
|
||||||
* the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
*
|
*
|
||||||
|
|
@ -9887,9 +9857,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -9985,9 +9954,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10027,7 +9995,6 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
*
|
*
|
||||||
|
|
@ -10049,9 +10016,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10213,6 +10179,7 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10416,6 +10383,7 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10469,7 +10437,6 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -10484,9 +10451,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10563,9 +10529,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
buffer: Buffer;
|
buffer: Buffer;
|
||||||
}>, options?: {
|
}>, options?: {
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10587,7 +10552,6 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
*
|
*
|
||||||
|
|
@ -10611,9 +10575,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10673,9 +10636,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
delay?: number;
|
delay?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -10699,7 +10661,6 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -10715,9 +10676,8 @@ export interface ElementHandle<T=Node> extends JSHandle<T> {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -11097,7 +11057,6 @@ export interface Locator {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked. If not, this method throws.
|
* 1. Ensure that the element is now checked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -11120,9 +11079,8 @@ export interface Locator {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -11179,9 +11137,8 @@ export interface Locator {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -11263,6 +11220,7 @@ export interface Locator {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -11338,8 +11296,6 @@ export interface Locator {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to double click in the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set. Note that if
|
|
||||||
* the first click of the `dblclick()` triggers a navigation event, this method will throw.
|
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
*
|
*
|
||||||
|
|
@ -11373,9 +11329,8 @@ export interface Locator {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -11488,9 +11443,8 @@ export interface Locator {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -11568,9 +11522,8 @@ export interface Locator {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12025,7 +11978,6 @@ export interface Locator {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to hover over the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
*
|
*
|
||||||
|
|
@ -12047,9 +11999,8 @@ export interface Locator {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12434,6 +12385,7 @@ export interface Locator {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12482,9 +12434,8 @@ export interface Locator {
|
||||||
delay?: number;
|
delay?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12627,6 +12578,7 @@ export interface Locator {
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
* navigating to inaccessible pages. Defaults to `false`.
|
||||||
|
* @deprecated This option will default to `true` in the future.
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12682,7 +12634,6 @@ export interface Locator {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
* 1. Ensure that the element is now checked or unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
* When all steps combined have not finished during the specified `timeout`, this method throws a {@link
|
||||||
|
|
@ -12697,9 +12648,8 @@ export interface Locator {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12802,9 +12752,8 @@ export interface Locator {
|
||||||
buffer: Buffer;
|
buffer: Buffer;
|
||||||
}>, options?: {
|
}>, options?: {
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12827,7 +12776,6 @@ export interface Locator {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
* 1. Use [page.touchscreen](https://playwright.dev/docs/api/class-page#page-touchscreen) to tap the center of the
|
||||||
* element, or the specified `position`.
|
* element, or the specified `position`.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
*
|
*
|
||||||
|
|
@ -12851,9 +12799,8 @@ export interface Locator {
|
||||||
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
modifiers?: Array<"Alt"|"Control"|"ControlOrMeta"|"Meta"|"Shift">;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12922,9 +12869,8 @@ export interface Locator {
|
||||||
delay?: number;
|
delay?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -12955,7 +12901,6 @@ export interface Locator {
|
||||||
* 1. Scroll the element into view if needed.
|
* 1. Scroll the element into view if needed.
|
||||||
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
* 1. Use [page.mouse](https://playwright.dev/docs/api/class-page#page-mouse) to click in the center of the
|
||||||
* element.
|
* element.
|
||||||
* 1. Wait for initiated navigations to either succeed or fail, unless `noWaitAfter` option is set.
|
|
||||||
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
* 1. Ensure that the element is now unchecked. If not, this method throws.
|
||||||
*
|
*
|
||||||
* If the element is detached from the DOM at any moment during the action, this method throws.
|
* If the element is detached from the DOM at any moment during the action, this method throws.
|
||||||
|
|
@ -12971,9 +12916,8 @@ export interface Locator {
|
||||||
force?: boolean;
|
force?: boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
@ -18138,9 +18082,8 @@ export interface FileChooser {
|
||||||
buffer: Buffer;
|
buffer: Buffer;
|
||||||
}>, options?: {
|
}>, options?: {
|
||||||
/**
|
/**
|
||||||
* Actions that initiate navigations are waiting for these navigations to happen and for pages to start loading. You
|
* This option has no effect.
|
||||||
* can opt out of waiting via setting this flag. You would only need this option in the exceptional cases such as
|
* @deprecated This option has no effect.
|
||||||
* navigating to inaccessible pages. Defaults to `false`.
|
|
||||||
*/
|
*/
|
||||||
noWaitAfter?: boolean;
|
noWaitAfter?: boolean;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2611,7 +2611,6 @@ export type FrameCheckParams = {
|
||||||
selector: string,
|
selector: string,
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
|
|
@ -2619,7 +2618,6 @@ export type FrameCheckParams = {
|
||||||
export type FrameCheckOptions = {
|
export type FrameCheckOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
|
|
@ -2660,7 +2658,6 @@ export type FrameDragAndDropParams = {
|
||||||
source: string,
|
source: string,
|
||||||
target: string,
|
target: string,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
sourcePosition?: Point,
|
sourcePosition?: Point,
|
||||||
|
|
@ -2669,7 +2666,6 @@ export type FrameDragAndDropParams = {
|
||||||
};
|
};
|
||||||
export type FrameDragAndDropOptions = {
|
export type FrameDragAndDropOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
sourcePosition?: Point,
|
sourcePosition?: Point,
|
||||||
|
|
@ -2681,7 +2677,6 @@ export type FrameDblclickParams = {
|
||||||
selector: string,
|
selector: string,
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
|
|
@ -2692,7 +2687,6 @@ export type FrameDblclickParams = {
|
||||||
export type FrameDblclickOptions = {
|
export type FrameDblclickOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
|
|
@ -2741,13 +2735,11 @@ export type FrameFillParams = {
|
||||||
value: string,
|
value: string,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type FrameFillOptions = {
|
export type FrameFillOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type FrameFillResult = void;
|
export type FrameFillResult = void;
|
||||||
export type FrameFocusParams = {
|
export type FrameFocusParams = {
|
||||||
|
|
@ -2807,7 +2799,6 @@ export type FrameHoverParams = {
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type FrameHoverOptions = {
|
export type FrameHoverOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
|
|
@ -2816,7 +2807,6 @@ export type FrameHoverOptions = {
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type FrameHoverResult = void;
|
export type FrameHoverResult = void;
|
||||||
export type FrameInnerHTMLParams = {
|
export type FrameInnerHTMLParams = {
|
||||||
|
|
@ -3019,7 +3009,6 @@ export type FrameSetInputFilesParams = {
|
||||||
localPaths?: string[],
|
localPaths?: string[],
|
||||||
streams?: WritableStreamChannel[],
|
streams?: WritableStreamChannel[],
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type FrameSetInputFilesOptions = {
|
export type FrameSetInputFilesOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
|
|
@ -3033,14 +3022,12 @@ export type FrameSetInputFilesOptions = {
|
||||||
localPaths?: string[],
|
localPaths?: string[],
|
||||||
streams?: WritableStreamChannel[],
|
streams?: WritableStreamChannel[],
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type FrameSetInputFilesResult = void;
|
export type FrameSetInputFilesResult = void;
|
||||||
export type FrameTapParams = {
|
export type FrameTapParams = {
|
||||||
selector: string,
|
selector: string,
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
|
|
@ -3049,7 +3036,6 @@ export type FrameTapParams = {
|
||||||
export type FrameTapOptions = {
|
export type FrameTapOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
|
|
@ -3078,13 +3064,11 @@ export type FrameTypeParams = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
text: string,
|
text: string,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
};
|
};
|
||||||
export type FrameTypeOptions = {
|
export type FrameTypeOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
};
|
};
|
||||||
export type FrameTypeResult = void;
|
export type FrameTypeResult = void;
|
||||||
|
|
@ -3092,7 +3076,6 @@ export type FrameUncheckParams = {
|
||||||
selector: string,
|
selector: string,
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
|
|
@ -3100,7 +3083,6 @@ export type FrameUncheckParams = {
|
||||||
export type FrameUncheckOptions = {
|
export type FrameUncheckOptions = {
|
||||||
strict?: boolean,
|
strict?: boolean,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
|
|
@ -3368,14 +3350,12 @@ export type ElementHandleBoundingBoxResult = {
|
||||||
};
|
};
|
||||||
export type ElementHandleCheckParams = {
|
export type ElementHandleCheckParams = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
};
|
};
|
||||||
export type ElementHandleCheckOptions = {
|
export type ElementHandleCheckOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
|
|
@ -3411,7 +3391,6 @@ export type ElementHandleContentFrameResult = {
|
||||||
};
|
};
|
||||||
export type ElementHandleDblclickParams = {
|
export type ElementHandleDblclickParams = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
|
|
@ -3421,7 +3400,6 @@ export type ElementHandleDblclickParams = {
|
||||||
};
|
};
|
||||||
export type ElementHandleDblclickOptions = {
|
export type ElementHandleDblclickOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
|
|
@ -3442,12 +3420,10 @@ export type ElementHandleFillParams = {
|
||||||
value: string,
|
value: string,
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type ElementHandleFillOptions = {
|
export type ElementHandleFillOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type ElementHandleFillResult = void;
|
export type ElementHandleFillResult = void;
|
||||||
export type ElementHandleFocusParams = {};
|
export type ElementHandleFocusParams = {};
|
||||||
|
|
@ -3468,7 +3444,6 @@ export type ElementHandleHoverParams = {
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type ElementHandleHoverOptions = {
|
export type ElementHandleHoverOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
|
|
@ -3476,7 +3451,6 @@ export type ElementHandleHoverOptions = {
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type ElementHandleHoverResult = void;
|
export type ElementHandleHoverResult = void;
|
||||||
export type ElementHandleInnerHTMLParams = {};
|
export type ElementHandleInnerHTMLParams = {};
|
||||||
|
|
@ -3647,7 +3621,6 @@ export type ElementHandleSetInputFilesParams = {
|
||||||
localPaths?: string[],
|
localPaths?: string[],
|
||||||
streams?: WritableStreamChannel[],
|
streams?: WritableStreamChannel[],
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type ElementHandleSetInputFilesOptions = {
|
export type ElementHandleSetInputFilesOptions = {
|
||||||
payloads?: {
|
payloads?: {
|
||||||
|
|
@ -3660,12 +3633,10 @@ export type ElementHandleSetInputFilesOptions = {
|
||||||
localPaths?: string[],
|
localPaths?: string[],
|
||||||
streams?: WritableStreamChannel[],
|
streams?: WritableStreamChannel[],
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
};
|
};
|
||||||
export type ElementHandleSetInputFilesResult = void;
|
export type ElementHandleSetInputFilesResult = void;
|
||||||
export type ElementHandleTapParams = {
|
export type ElementHandleTapParams = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
|
|
@ -3673,7 +3644,6 @@ export type ElementHandleTapParams = {
|
||||||
};
|
};
|
||||||
export type ElementHandleTapOptions = {
|
export type ElementHandleTapOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
modifiers?: ('Alt' | 'Control' | 'ControlOrMeta' | 'Meta' | 'Shift')[],
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
|
|
@ -3688,25 +3658,21 @@ export type ElementHandleTextContentResult = {
|
||||||
export type ElementHandleTypeParams = {
|
export type ElementHandleTypeParams = {
|
||||||
text: string,
|
text: string,
|
||||||
delay?: number,
|
delay?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
};
|
};
|
||||||
export type ElementHandleTypeOptions = {
|
export type ElementHandleTypeOptions = {
|
||||||
delay?: number,
|
delay?: number,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
};
|
};
|
||||||
export type ElementHandleTypeResult = void;
|
export type ElementHandleTypeResult = void;
|
||||||
export type ElementHandleUncheckParams = {
|
export type ElementHandleUncheckParams = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
};
|
};
|
||||||
export type ElementHandleUncheckOptions = {
|
export type ElementHandleUncheckOptions = {
|
||||||
force?: boolean,
|
force?: boolean,
|
||||||
noWaitAfter?: boolean,
|
|
||||||
position?: Point,
|
position?: Point,
|
||||||
timeout?: number,
|
timeout?: number,
|
||||||
trial?: boolean,
|
trial?: boolean,
|
||||||
|
|
|
||||||
|
|
@ -1881,7 +1881,6 @@ Frame:
|
||||||
selector: string
|
selector: string
|
||||||
strict: boolean?
|
strict: boolean?
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
position: Point?
|
position: Point?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
|
|
@ -1931,7 +1930,6 @@ Frame:
|
||||||
source: string
|
source: string
|
||||||
target: string
|
target: string
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
sourcePosition: Point?
|
sourcePosition: Point?
|
||||||
|
|
@ -1947,7 +1945,6 @@ Frame:
|
||||||
selector: string
|
selector: string
|
||||||
strict: boolean?
|
strict: boolean?
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
modifiers:
|
modifiers:
|
||||||
type: array?
|
type: array?
|
||||||
items:
|
items:
|
||||||
|
|
@ -2011,7 +2008,6 @@ Frame:
|
||||||
value: string
|
value: string
|
||||||
force: boolean?
|
force: boolean?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
noWaitAfter: boolean?
|
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
snapshot: true
|
snapshot: true
|
||||||
|
|
@ -2075,7 +2071,6 @@ Frame:
|
||||||
position: Point?
|
position: Point?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
snapshot: true
|
snapshot: true
|
||||||
|
|
@ -2261,7 +2256,6 @@ Frame:
|
||||||
type: array?
|
type: array?
|
||||||
items: WritableStream
|
items: WritableStream
|
||||||
timeout: number?
|
timeout: number?
|
||||||
noWaitAfter: boolean?
|
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
snapshot: true
|
snapshot: true
|
||||||
|
|
@ -2272,7 +2266,6 @@ Frame:
|
||||||
selector: string
|
selector: string
|
||||||
strict: boolean?
|
strict: boolean?
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
modifiers:
|
modifiers:
|
||||||
type: array?
|
type: array?
|
||||||
items:
|
items:
|
||||||
|
|
@ -2311,7 +2304,6 @@ Frame:
|
||||||
strict: boolean?
|
strict: boolean?
|
||||||
text: string
|
text: string
|
||||||
delay: number?
|
delay: number?
|
||||||
noWaitAfter: boolean?
|
|
||||||
timeout: number?
|
timeout: number?
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
|
|
@ -2323,7 +2315,6 @@ Frame:
|
||||||
selector: string
|
selector: string
|
||||||
strict: boolean?
|
strict: boolean?
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
position: Point?
|
position: Point?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
|
|
@ -2539,7 +2530,6 @@ ElementHandle:
|
||||||
check:
|
check:
|
||||||
parameters:
|
parameters:
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
position: Point?
|
position: Point?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
|
|
@ -2585,7 +2575,6 @@ ElementHandle:
|
||||||
dblclick:
|
dblclick:
|
||||||
parameters:
|
parameters:
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
modifiers:
|
modifiers:
|
||||||
type: array?
|
type: array?
|
||||||
items:
|
items:
|
||||||
|
|
@ -2624,7 +2613,6 @@ ElementHandle:
|
||||||
value: string
|
value: string
|
||||||
force: boolean?
|
force: boolean?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
noWaitAfter: boolean?
|
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
snapshot: true
|
snapshot: true
|
||||||
|
|
@ -2657,7 +2645,6 @@ ElementHandle:
|
||||||
position: Point?
|
position: Point?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
snapshot: true
|
snapshot: true
|
||||||
|
|
@ -2823,7 +2810,6 @@ ElementHandle:
|
||||||
type: array?
|
type: array?
|
||||||
items: WritableStream
|
items: WritableStream
|
||||||
timeout: number?
|
timeout: number?
|
||||||
noWaitAfter: boolean?
|
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
snapshot: true
|
snapshot: true
|
||||||
|
|
@ -2832,7 +2818,6 @@ ElementHandle:
|
||||||
tap:
|
tap:
|
||||||
parameters:
|
parameters:
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
modifiers:
|
modifiers:
|
||||||
type: array?
|
type: array?
|
||||||
items:
|
items:
|
||||||
|
|
@ -2861,7 +2846,6 @@ ElementHandle:
|
||||||
parameters:
|
parameters:
|
||||||
text: string
|
text: string
|
||||||
delay: number?
|
delay: number?
|
||||||
noWaitAfter: boolean?
|
|
||||||
timeout: number?
|
timeout: number?
|
||||||
flags:
|
flags:
|
||||||
slowMo: true
|
slowMo: true
|
||||||
|
|
@ -2871,7 +2855,6 @@ ElementHandle:
|
||||||
uncheck:
|
uncheck:
|
||||||
parameters:
|
parameters:
|
||||||
force: boolean?
|
force: boolean?
|
||||||
noWaitAfter: boolean?
|
|
||||||
position: Point?
|
position: Point?
|
||||||
timeout: number?
|
timeout: number?
|
||||||
trial: boolean?
|
trial: boolean?
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
import { contextTest as it, expect } from '../config/browserTest';
|
import { contextTest as it, expect } from '../config/browserTest';
|
||||||
import type { ElementHandle } from 'playwright-core';
|
import type { ElementHandle } from 'playwright-core';
|
||||||
import type { ServerResponse } from 'http';
|
|
||||||
|
|
||||||
it.use({ hasTouch: true });
|
it.use({ hasTouch: true });
|
||||||
|
|
||||||
|
|
@ -83,27 +82,13 @@ it('should not send mouse events when touchend is canceled', async ({ page }) =>
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should wait for a navigation caused by a tap', async ({ page, server }) => {
|
it('should not wait for a navigation caused by a tap', async ({ page, server }) => {
|
||||||
await page.goto(server.EMPTY_PAGE);
|
await page.goto(server.EMPTY_PAGE);
|
||||||
await page.setContent(`
|
await page.setContent(`<a href="/intercept-this.html">link</a>;`);
|
||||||
<a href="/intercept-this.html">link</a>;
|
await Promise.all([
|
||||||
`);
|
new Promise(resolve => server.setRoute('/intercept-this.html', resolve)),
|
||||||
const responsePromise = new Promise<ServerResponse>(resolve => {
|
page.tap('a'),
|
||||||
server.setRoute('/intercept-this.html', (handler, response) => {
|
]);
|
||||||
resolve(response);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
let resolved = false;
|
|
||||||
const tapPromise = page.tap('a').then(() => resolved = true);
|
|
||||||
const response = await responsePromise;
|
|
||||||
// make sure the tap doesn't resolve too early
|
|
||||||
await new Promise(x => setTimeout(x, 100));
|
|
||||||
expect(resolved).toBe(false);
|
|
||||||
|
|
||||||
response.end('foo');
|
|
||||||
|
|
||||||
await tapPromise;
|
|
||||||
expect(resolved).toBe(true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work with modifiers', async ({ page }) => {
|
it('should work with modifiers', async ({ page }) => {
|
||||||
|
|
|
||||||
|
|
@ -33,16 +33,6 @@ it('should hover when Node is removed', async ({ page, server }) => {
|
||||||
expect(await page.evaluate(() => document.querySelector('button:hover').id)).toBe('button-6');
|
expect(await page.evaluate(() => document.querySelector('button:hover').id)).toBe('button-6');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('hover should support noWaitAfter', async ({ page, server }) => {
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
await page.setContent(`<button onmouseover='location.href="${server.PREFIX}/next"'>GO</button>`);
|
|
||||||
await Promise.all([
|
|
||||||
new Promise(fulfill => server.setRoute('/next', fulfill)),
|
|
||||||
page.locator('button').hover({ noWaitAfter: true })
|
|
||||||
]);
|
|
||||||
expect(page.url()).toBe(server.EMPTY_PAGE);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should fill input', async ({ page, server }) => {
|
it('should fill input', async ({ page, server }) => {
|
||||||
await page.goto(server.PREFIX + '/input/textarea.html');
|
await page.goto(server.PREFIX + '/input/textarea.html');
|
||||||
const handle = page.locator('input');
|
const handle = page.locator('input');
|
||||||
|
|
|
||||||
|
|
@ -96,10 +96,10 @@ it('should work with noWaitAfter: true', async ({ page, server }) => {
|
||||||
await page.click('a', { noWaitAfter: true });
|
await page.click('a', { noWaitAfter: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work with dblclick noWaitAfter: true', async ({ page, server }) => {
|
it('should work with dblclick without noWaitAfter when navigation is stalled', async ({ page, server }) => {
|
||||||
server.setRoute('/empty.html', async () => {});
|
server.setRoute('/empty.html', async () => {});
|
||||||
await page.setContent(`<a id="anchor" href="${server.EMPTY_PAGE}">empty.html</a>`);
|
await page.setContent(`<a id="anchor" href="${server.EMPTY_PAGE}">empty.html</a>`);
|
||||||
await page.dblclick('a', { noWaitAfter: true });
|
await page.dblclick('a');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work with waitForLoadState(load)', async ({ page, server }) => {
|
it('should work with waitForLoadState(load)', async ({ page, server }) => {
|
||||||
|
|
|
||||||
|
|
@ -173,16 +173,6 @@ it('should trigger hover state', async ({ page, server }) => {
|
||||||
expect(await page.evaluate(() => document.querySelector('button:hover').id)).toBe('button-91');
|
expect(await page.evaluate(() => document.querySelector('button:hover').id)).toBe('button-91');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('hover should support noWaitAfter', async ({ page, server }) => {
|
|
||||||
await page.goto(server.EMPTY_PAGE);
|
|
||||||
await page.setContent(`<button onmouseover='location.href="${server.PREFIX}/next"'>GO</button>`);
|
|
||||||
await Promise.all([
|
|
||||||
new Promise(fulfill => server.setRoute('/next', fulfill)),
|
|
||||||
page.hover('button', { noWaitAfter: true })
|
|
||||||
]);
|
|
||||||
expect(page.url()).toBe(server.EMPTY_PAGE);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should trigger hover state on disabled button', async ({ page, server }) => {
|
it('should trigger hover state on disabled button', async ({ page, server }) => {
|
||||||
await page.goto(server.PREFIX + '/input/scrollable.html');
|
await page.goto(server.PREFIX + '/input/scrollable.html');
|
||||||
await page.$eval('#button-6', (button: HTMLButtonElement) => button.disabled = true);
|
await page.$eval('#button-6', (button: HTMLButtonElement) => button.disabled = true);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue