18 KiB
async method: Playwright.start
- langs: python
Starts a new instance of Playwright without using the Python context manager. This is useful in REPL applications. Requires [method: Playwright.stop
] to be called to cleanup resources.
>>> from playwright.sync_api import sync_playwright
>>> playwright = sync_playwright().start()
>>> browser = playwright.chromium.launch()
>>> page = browser.newPage()
>>> page.goto("http://whatsmyuseragent.org/")
>>> page.screenshot(path="example.png")
>>> browser.close()
>>> playwright.stop()
async method: Playwright.stop
- langs: python
Terminates this instance of Playwright in case it was created bypassing the Python context manager. This is useful in REPL applications.
>>> from playwright.sync_api import sync_playwright
>>> playwright = sync_playwright().start()
>>> browser = playwright.chromium.launch()
>>> page = browser.newPage()
>>> page.goto("http://whatsmyuseragent.org/")
>>> page.screenshot(path="example.png")
>>> browser.close()
>>> playwright.stop()
param: BrowserContext.addInitScript.path
- langs: python
path
<[path]>
Path to the JavaScript file. If path
is a relative path, then it is resolved relative to the current working directory. Optional.
param: BrowserContext.addInitScript.script
- langs: python
script
<[string]>
Script to be evaluated in all pages in the browser context. Optional.
param: Page.addInitScript.path
- langs: python
path
<[path]>
Path to the JavaScript file. If path
is a relative path, then it is resolved relative to the current working directory. Optional.
param: Page.addInitScript.script
- langs: python
script
<[string]>
Script to be evaluated in all pages in the browser context. Optional.
param: ElementHandle.selectOption.element = %%-python-select-options-element-%%
param: ElementHandle.selectOption.index = %%-python-select-options-index-%%
param: ElementHandle.selectOption.value = %%-python-select-options-value-%%
param: ElementHandle.selectOption.label = %%-python-select-options-label-%%
param: Frame.selectOption.element = %%-python-select-options-element-%%
param: Frame.selectOption.index = %%-python-select-options-index-%%
param: Frame.selectOption.value = %%-python-select-options-value-%%
param: Frame.selectOption.label = %%-python-select-options-label-%%
param: Page.selectOption.element = %%-python-select-options-element-%%
param: Page.selectOption.index = %%-python-select-options-index-%%
param: Page.selectOption.value = %%-python-select-options-value-%%
param: Page.selectOption.label = %%-python-select-options-label-%%
param: Page.emulateMedia.params
- langs: python
media
<[null]|"screen"|"print">
Changes the CSS media type of the page. The only allowed values are 'screen'
, 'print'
and null
.
Passing null
disables CSS media emulation. Omitting media
or passing undefined
does not change the emulated value.
Optional.
param: Page.emulateMedia.params
- langs: python
colorScheme
<[null]|"light"|"dark"|"no-preference">
Emulates 'prefers-colors-scheme'
media feature, supported values are 'light'
, 'dark'
, 'no-preference'
. Passing
null
disables color scheme emulation. Omitting colorScheme
or passing undefined
does not change the emulated
value. Optional.
option: Page.frame.name
- langs: python
name
<[string]>
Frame name specified in the iframe
's name
attribute. Optional.
option: Page.frame.url
- langs: python
url
<[string]|[RegExp]|[function][URL]
:[boolean]>
A glob pattern, regex pattern or predicate receiving frame's url
as a [URL] object. Optional.
option: Selectors.register.script
- langs: python
path
<[path]>
Path to the JavaScript file. If path
is a relative path, then it is resolved relative to the current working directory.
option: Selectors.register.script
- langs: python
script
<[string]>
Raw script content.
method: Request.failure
- langs: python
- returns: <[null]|[string]>
Returns human-readable error message, e.g. 'net::ERR_FAILED'
. The method returns None
unless this request has
failed, as reported by requestfailed
event.
Example of logging of all the failed requests:
page.on('requestfailed', lambda request: print(request.url + ' ' + request.failure);
async method: Response.finished
- langs: python
- returns: <[null]|[string]>
Waits for this response to finish, returns failure error if request failed.
async method: Page.expectEvent
- langs: python
- returns: <[EventContextManager]>
Performs action and waits for given event
to fire. If predicate is provided, it passes
event's value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the event
is fired.
async with page.expect_event(event_name) as event_info:
await page.click("button")
value = await event_info.value
with page.expect_event(event_name) as event_info:
page.click("button")
value = event_info.value
param: Page.expectEvent.event = %%-wait-for-event-event-%%
option: Page.expectEvent.predicate = %%-python-wait-for-event-predicate-%%
option: Page.expectEvent.timeout = %%-python-wait-for-event-timeout-%%
async method: BrowserContext.expectEvent
- langs: python
- returns: <[EventContextManager]>
Performs action and waits for given event
to fire. If predicate is provided, it passes
event's value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if browser context is closed before the event
is fired.
async with context.expect_event("page") as event_info:
await context.click("button")
page = await event_info.value
with context.expect_event("page") as event_info:
context.click("button")
page = event_info.value
param: BrowserContext.expectEvent.event = %%-wait-for-event-event-%%
option: BrowserContext.expectEvent.predicate = %%-python-wait-for-event-predicate-%%
option: BrowserContext.expectEvent.timeout = %%-python-wait-for-event-timeout-%%
async method: WebSocket.expectEvent
- langs: python
- returns: <[EventContextManager]>
Performs action and waits for given event
to fire. If predicate is provided, it passes
event's value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the socket is closed before the event
is fired.
async with ws.expect_event(event_name) as event_info:
await ws.click("button")
value = await event_info.value
with ws.expect_event(event_name) as event_info:
ws.click("button")
value = event_info.value
param: WebSocket.expectEvent.event = %%-wait-for-event-event-%%
option: WebSocket.expectEvent.predicate = %%-python-wait-for-event-predicate-%%
option: WebSocket.expectEvent.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectNavigation
- langs: python
- returns: <[EventContextManager]>
Performs action and waits for the next navigation. In case of multiple redirects, the navigation will resolve with
the response of the last redirect. In case of navigation to a different anchor or navigation due to History API
usage, the navigation will resolve with null
.
This resolves when the page navigates to a new URL or reloads. It is useful for when you run code which will
indirectly cause the page to navigate. e.g. The click target has an onclick
handler that triggers navigation
from a setTimeout
. Consider this example:
async with page.expect_navigation():
await page.click("a.delayed-navigation") # Clicking the link will indirectly cause a navigation
# Context manager waited for the navigation to happen.
with page.expect_navigation():
page.click("a.delayed-navigation") # Clicking the link will indirectly cause a navigation
# Context manager waited for the navigation to happen.
:::note Usage of the History API to change the URL is considered a navigation. :::
Shortcut for main frame's [method: Frame.expectNavigation
].
option: Page.expectNavigation.timeout = %%-navigation-timeout-%%
option: Page.expectNavigation.url = %%-wait-for-navigation-url-%%
option: Page.expectNavigation.waitUntil = %%-navigation-wait-until-%%
async method: Frame.expectNavigation
- langs: python
- returns: <[EventContextManager[Response]]>
Performs action and waits for the next navigation. In case of multiple redirects, the navigation will resolve with
the response of the last redirect. In case of navigation to a different anchor or navigation due to History API
usage, the navigation will resolve with null
.
This resolves when the page navigates to a new URL or reloads. It is useful for when you run code which will
indirectly cause the page to navigate. e.g. The click target has an onclick
handler that triggers navigation
from a setTimeout
. Consider this example:
async with frame.expect_navigation():
await frame.click("a.delayed-navigation") # Clicking the link will indirectly cause a navigation
# Context manager waited for the navigation to happen.
with frame.expect_navigation():
frame.click("a.delayed-navigation") # Clicking the link will indirectly cause a navigation
# Context manager waited for the navigation to happen.
:::note Usage of the History API to change the URL is considered a navigation. :::
option: Frame.expectNavigation.timeout = %%-navigation-timeout-%%
option: Frame.expectNavigation.url = %%-wait-for-navigation-url-%%
option: Frame.expectNavigation.waitUntil = %%-navigation-wait-until-%%
async method: Page.expectDownload
- langs: python
- returns: <[EventContextManager]<[Download]>>
Performs action and waits for download
event to fire. If predicate is provided, it passes
[Download] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the download event is fired.
option: Page.expectDownload.predicate =
- langs: python
predicate
<[function][Download]
:[bool]>
Receives the [Download] object and resolves to truthy value when the waiting should resolve.
option: Page.expectDownload.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectPopup
- langs: python
- returns: <[EventContextManager]<[Page]>>
Performs action and waits for popup
event to fire. If predicate is provided, it passes
[Popup] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the popup event is fired.
option: Page.expectPopup.predicate =
- langs: python
predicate
<[function][Page]
:[bool]>
Receives the [Popup] object and resolves to truthy value when the waiting should resolve.
option: Page.expectPopup.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectWorker
- langs: python
- returns: <[EventContextManager]<[Worker]>>
Performs action and waits for worker
event to fire. If predicate is provided, it passes
[Worker] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the worker event is fired.
option: Page.expectWorker.predicate =
- langs: python
predicate
<[function][Worker]
:[bool]>
Receives the [Worker] object and resolves to truthy value when the waiting should resolve.
option: Page.expectWorker.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectConsoleMessage
- langs: python
- returns: <[EventContextManager]<[ConsoleMessage]>>
Performs action and waits for console
event to fire. If predicate is provided, it passes
[ConsoleMessage] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the worker event is fired.
option: Page.expectConsoleMessage.predicate =
- langs: python
predicate
<[function][ConsoleMessage]
:[bool]>
Receives the [ConsoleMessage] object and resolves to truthy value when the waiting should resolve.
option: Page.expectConsoleMessage.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectFileChooser
- langs: python
- returns: <[EventContextManager]<[FileChooser]>>
Performs action and waits for filechooser
event to fire. If predicate is provided, it passes
[FileChooser] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the worker event is fired.
option: Page.expectFileChooser.predicate =
- langs: python
predicate
<[function][FileChooser]
:[bool]>
Receives the [FileChooser] object and resolves to truthy value when the waiting should resolve.
option: Page.expectFileChooser.timeout = %%-python-wait-for-event-timeout-%%
async method: BrowserContext.expectPage
- langs: python
- returns: <[EventContextManager]<[Page]>>
Performs action and waits for page
event to fire. If predicate is provided, it passes
[Page] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the worker event is fired.
option: BrowserContext.expectPage.predicate =
- langs: python
predicate
<[function][Page]
:[bool]>
Receives the [Page] object and resolves to truthy value when the waiting should resolve.
option: BrowserContext.expectPage.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectRequest
- langs: python
- returns: <[EventContextManager]<[Request]>>
Performs action and waits for response
event to fire. If predicate is provided, it passes
[Request] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the download event is fired.
param: Page.expectRequest.url_or_predicate =
- langs: python
url_or_predicate
<[str]|[RegExp]|[function][Request]
:[bool]>
Receives the [Request] object and resolves to truthy value when the waiting should resolve.
option: Page.expectRequest.timeout = %%-python-wait-for-event-timeout-%%
async method: Page.expectResponse
- langs: python
- returns: <[EventContextManager]<[Response]>>
Performs action and waits for response
event to fire. If predicate is provided, it passes
[Response] value into the predicate
function and waits for predicate(event)
to return a truthy value.
Will throw an error if the page is closed before the download event is fired.
param: Page.expectResponse.url_or_predicate =
- langs: python
url_or_predicate
<[str]|[RegExp]|[function][Response]
:[bool]>
Receives the [Response] object and resolves to truthy value when the waiting should resolve.