Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,19 +145,19 @@ jobs:
- name: Install ffmpeg
run: python -m playwright install ffmpeg
- name: Common Tests
run: pytest -vv tests/common --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
run: pytest tests/common --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
- name: Test Sync API
if: matrix.os != 'ubuntu-latest'
run: pytest -vv tests/sync --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
run: pytest tests/sync --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
- name: Test Sync API
if: matrix.os == 'ubuntu-latest'
run: xvfb-run pytest -vv tests/sync --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
run: xvfb-run pytest tests/sync --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
- name: Test Async API
if: matrix.os != 'ubuntu-latest'
run: pytest -vv tests/async --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
run: pytest tests/async --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
- name: Test Async API
if: matrix.os == 'ubuntu-latest'
run: xvfb-run pytest -vv tests/async --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
run: xvfb-run pytest tests/async --browser=chromium --browser-channel=${{ matrix.browser-channel }} --timeout 90
- uses: actions/upload-artifact@v2
if: failure()
with:
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ Playwright is a Python library to automate [Chromium](https://www.chromium.org/H

| | Linux | macOS | Windows |
| :--- | :---: | :---: | :---: |
| Chromium <!-- GEN:chromium-version -->91.0.4469.0<!-- GEN:stop --> | ✅ | ✅ | ✅ |
| Chromium <!-- GEN:chromium-version -->92.0.4498.0<!-- GEN:stop --> | ✅ | ✅ | ✅ |
| WebKit <!-- GEN:webkit-version -->14.2<!-- GEN:stop --> | ✅ | ✅ | ✅ |
| Firefox <!-- GEN:firefox-version -->89.0b2<!-- GEN:stop --> | ✅ | ✅ | ✅ |
| Firefox <!-- GEN:firefox-version -->89.0b6<!-- GEN:stop --> | ✅ | ✅ | ✅ |

Headless execution is supported for all browsers on all platforms.

Expand Down
78 changes: 52 additions & 26 deletions playwright/async_api/_generated.py
Original file line number Diff line number Diff line change
Expand Up @@ -1669,12 +1669,16 @@ async def select_option(
) -> typing.List[str]:
"""ElementHandle.select_option

Returns the array of option values that have been successfully selected.
This method waits for [actionability](./actionability.md) checks, waits until all specified options are present in the
`<select>` element and selects these options.

If the target element is not a `<select>` element, this method throws an error. However, if the element is inside the
`<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be used instead.

Triggers a `change` and `input` event once all the provided options have been selected. If element is not a `<select>`
element, the method throws an error.
Returns the array of option values that have been successfully selected.

Will wait until all specified options are present in the `<select>` element.
Triggers a `change` and `input` event once all the provided options have been selected.

```py
# single selection matching the value
Expand Down Expand Up @@ -1793,10 +1797,14 @@ async def fill(
"""ElementHandle.fill

This method waits for [actionability](./actionability.md) checks, focuses the element, fills it and triggers an `input`
event after filling. If the element is inside the `<label>` element that has associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), that control will be filled
instead. If the element to be filled is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method
throws an error. Note that you can pass an empty string to clear the input field.
event after filling. Note that you can pass an empty string to clear the input field.

If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error.
However, if the element is inside the `<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled
instead.

To send fine-grained keyboard events, use `element_handle.type()`.

Parameters
----------
Expand Down Expand Up @@ -3777,10 +3785,13 @@ async def fill(
"""Frame.fill

This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, focuses the
element, fills it and triggers an `input` event after filling. If the element is inside the `<label>` element that has
associated [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), that control will be
filled instead. If the element to be filled is not an `<input>`, `<textarea>` or `[contenteditable]` element, this
method throws an error. Note that you can pass an empty string to clear the input field.
element, fills it and triggers an `input` event after filling. Note that you can pass an empty string to clear the input
field.

If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error.
However, if the element is inside the `<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled
instead.

To send fine-grained keyboard events, use `frame.type()`.

Expand Down Expand Up @@ -4019,12 +4030,16 @@ async def select_option(
) -> typing.List[str]:
"""Frame.select_option

Returns the array of option values that have been successfully selected.
This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, waits until
all specified options are present in the `<select>` element and selects these options.

Triggers a `change` and `input` event once all the provided options have been selected. If there's no `<select>` element
matching `selector`, the method throws an error.
If the target element is not a `<select>` element, this method throws an error. However, if the element is inside the
`<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be used instead.

Will wait until all specified options are present in the `<select>` element.
Returns the array of option values that have been successfully selected.

Triggers a `change` and `input` event once all the provided options have been selected.

```py
# single selection matching the value
Expand Down Expand Up @@ -4628,6 +4643,8 @@ def type(self) -> str:
def text(self) -> str:
"""ConsoleMessage.text

The text of the console message.

Returns
-------
str
Expand All @@ -4638,6 +4655,8 @@ def text(self) -> str:
def args(self) -> typing.List["JSHandle"]:
"""ConsoleMessage.args

List of arguments passed to a `console` function call. See also `page.on('console')`.

Returns
-------
List[JSHandle]
Expand Down Expand Up @@ -6800,14 +6819,17 @@ async def fill(
"""Page.fill

This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, focuses the
element, fills it and triggers an `input` event after filling. If the element is inside the `<label>` element that has
associated [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), that control will be
filled instead. If the element to be filled is not an `<input>`, `<textarea>` or `[contenteditable]` element, this
method throws an error. Note that you can pass an empty string to clear the input field.
element, fills it and triggers an `input` event after filling. Note that you can pass an empty string to clear the input
field.

If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error.
However, if the element is inside the `<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled
instead.

To send fine-grained keyboard events, use `page.type()`.

Shortcut for main frame's `frame.fill()`
Shortcut for main frame's `frame.fill()`.

Parameters
----------
Expand Down Expand Up @@ -7048,12 +7070,16 @@ async def select_option(
) -> typing.List[str]:
"""Page.select_option

Returns the array of option values that have been successfully selected.
This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, waits until
all specified options are present in the `<select>` element and selects these options.

If the target element is not a `<select>` element, this method throws an error. However, if the element is inside the
`<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be used instead.

Triggers a `change` and `input` event once all the provided options have been selected. If there's no `<select>` element
matching `selector`, the method throws an error.
Returns the array of option values that have been successfully selected.

Will wait until all specified options are present in the `<select>` element.
Triggers a `change` and `input` event once all the provided options have been selected.

```py
# single selection matching the value
Expand All @@ -7064,7 +7090,7 @@ async def select_option(
await page.select_option(\"select#colors\", value=[\"red\", \"green\", \"blue\"])
```

Shortcut for main frame's `frame.select_option()`
Shortcut for main frame's `frame.select_option()`.

Parameters
----------
Expand Down
78 changes: 52 additions & 26 deletions playwright/sync_api/_generated.py
Original file line number Diff line number Diff line change
Expand Up @@ -1647,12 +1647,16 @@ def select_option(
) -> typing.List[str]:
"""ElementHandle.select_option

Returns the array of option values that have been successfully selected.
This method waits for [actionability](./actionability.md) checks, waits until all specified options are present in the
`<select>` element and selects these options.

If the target element is not a `<select>` element, this method throws an error. However, if the element is inside the
`<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be used instead.

Triggers a `change` and `input` event once all the provided options have been selected. If element is not a `<select>`
element, the method throws an error.
Returns the array of option values that have been successfully selected.

Will wait until all specified options are present in the `<select>` element.
Triggers a `change` and `input` event once all the provided options have been selected.

```py
# single selection matching the value
Expand Down Expand Up @@ -1782,10 +1786,14 @@ def fill(
"""ElementHandle.fill

This method waits for [actionability](./actionability.md) checks, focuses the element, fills it and triggers an `input`
event after filling. If the element is inside the `<label>` element that has associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), that control will be filled
instead. If the element to be filled is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method
throws an error. Note that you can pass an empty string to clear the input field.
event after filling. Note that you can pass an empty string to clear the input field.

If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error.
However, if the element is inside the `<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled
instead.

To send fine-grained keyboard events, use `element_handle.type()`.

Parameters
----------
Expand Down Expand Up @@ -3759,10 +3767,13 @@ def fill(
"""Frame.fill

This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, focuses the
element, fills it and triggers an `input` event after filling. If the element is inside the `<label>` element that has
associated [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), that control will be
filled instead. If the element to be filled is not an `<input>`, `<textarea>` or `[contenteditable]` element, this
method throws an error. Note that you can pass an empty string to clear the input field.
element, fills it and triggers an `input` event after filling. Note that you can pass an empty string to clear the input
field.

If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error.
However, if the element is inside the `<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled
instead.

To send fine-grained keyboard events, use `frame.type()`.

Expand Down Expand Up @@ -4001,12 +4012,16 @@ def select_option(
) -> typing.List[str]:
"""Frame.select_option

Returns the array of option values that have been successfully selected.
This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, waits until
all specified options are present in the `<select>` element and selects these options.

Triggers a `change` and `input` event once all the provided options have been selected. If there's no `<select>` element
matching `selector`, the method throws an error.
If the target element is not a `<select>` element, this method throws an error. However, if the element is inside the
`<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be used instead.

Will wait until all specified options are present in the `<select>` element.
Returns the array of option values that have been successfully selected.

Triggers a `change` and `input` event once all the provided options have been selected.

```py
# single selection matching the value
Expand Down Expand Up @@ -4605,6 +4620,8 @@ def type(self) -> str:
def text(self) -> str:
"""ConsoleMessage.text

The text of the console message.

Returns
-------
str
Expand All @@ -4615,6 +4632,8 @@ def text(self) -> str:
def args(self) -> typing.List["JSHandle"]:
"""ConsoleMessage.args

List of arguments passed to a `console` function call. See also `page.on('console')`.

Returns
-------
List[JSHandle]
Expand Down Expand Up @@ -6759,14 +6778,17 @@ def fill(
"""Page.fill

This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, focuses the
element, fills it and triggers an `input` event after filling. If the element is inside the `<label>` element that has
associated [control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), that control will be
filled instead. If the element to be filled is not an `<input>`, `<textarea>` or `[contenteditable]` element, this
method throws an error. Note that you can pass an empty string to clear the input field.
element, fills it and triggers an `input` event after filling. Note that you can pass an empty string to clear the input
field.

If the target element is not an `<input>`, `<textarea>` or `[contenteditable]` element, this method throws an error.
However, if the element is inside the `<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be filled
instead.

To send fine-grained keyboard events, use `page.type()`.

Shortcut for main frame's `frame.fill()`
Shortcut for main frame's `frame.fill()`.

Parameters
----------
Expand Down Expand Up @@ -7007,12 +7029,16 @@ def select_option(
) -> typing.List[str]:
"""Page.select_option

Returns the array of option values that have been successfully selected.
This method waits for an element matching `selector`, waits for [actionability](./actionability.md) checks, waits until
all specified options are present in the `<select>` element and selects these options.

If the target element is not a `<select>` element, this method throws an error. However, if the element is inside the
`<label>` element that has an associated
[control](https://developer.mozilla.org/en-US/docs/Web/API/HTMLLabelElement/control), the control will be used instead.

Triggers a `change` and `input` event once all the provided options have been selected. If there's no `<select>` element
matching `selector`, the method throws an error.
Returns the array of option values that have been successfully selected.

Will wait until all specified options are present in the `<select>` element.
Triggers a `change` and `input` event once all the provided options have been selected.

```py
# single selection matching the value
Expand All @@ -7023,7 +7049,7 @@ def select_option(
page.select_option(\"select#colors\", value=[\"red\", \"green\", \"blue\"])
```

Shortcut for main frame's `frame.select_option()`
Shortcut for main frame's `frame.select_option()`.

Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
InWheel = None
from wheel.bdist_wheel import bdist_wheel as BDistWheelCommand

driver_version = "1.11.0-next-1620085974000"
driver_version = "1.11.0-1620331022000"


def extractall(zip: zipfile.ZipFile, path: str) -> None:
Expand Down
Loading