|
| None | register (self, str name, typing.Optional[str] script=None, *typing.Optional[typing.Union[pathlib.Path, str]] path=None, typing.Optional[bool] content_script=None) |
| |
| None | set_test_id_attribute (self, str attribute_name) |
| |
| None | __init__ (self, Any impl_obj) |
| |
|
str | __str__ (self) |
| |
| None | on (self, Any event, Any f) |
| |
| None | once (self, Any event, Any f) |
| |
| None | remove_listener (self, Any event, Any f) |
| |
|
str | __repr__ (self) |
| |
|
|
Any | _sync (self, Union[Coroutine[Any, Any, Any], Generator[Any, Any, Any]] coro) |
| |
|
Callable[..., None] | _wrap_handler (self, Union[Callable[..., Any], Any] handler) |
| |
|
| _dispatcher_fiber |
| |
|
| _loop |
| |
|
| _impl_obj |
| |
◆ register()
| None playwright.sync_api._generated.Selectors.register |
( |
|
self, |
|
|
str |
name, |
|
|
typing.Optional[str] |
script = None, |
|
|
*typing.Optional[typing.Union[pathlib.Path, str]] |
path = None, |
|
|
typing.Optional[bool] |
content_script = None |
|
) |
| |
Selectors.register
Selectors must be registered before creating the page.
**Usage**
An example of registering selector engine that queries elements based on a tag name:
```py
from playwright.sync_api import sync_playwright, Playwright
def run(playwright: Playwright):
tag_selector = \"\"\"
{
// Returns the first element matching given selector in the root's subtree.
query(root, selector) {
return root.querySelector(selector);
},
// Returns all elements matching given selector in the root's subtree.
queryAll(root, selector) {
return Array.from(root.querySelectorAll(selector));
}
}\"\"\"
# Register the engine. Selectors will be prefixed with \"tag=\".
playwright.selectors.register(\"tag\", tag_selector)
browser = playwright.chromium.launch()
page = browser.new_page()
page.set_content('<div><button>Click me</button></div>')
# Use the selector prefixed with its name.
button = page.locator('tag=button')
# Combine it with built-in locators.
page.locator('tag=div').get_by_text('Click me').click()
# Can use it in any methods supporting selectors.
button_count = page.locator('tag=button').count()
print(button_count)
browser.close()
with sync_playwright() as playwright:
run(playwright)
```
Parameters
----------
name : str
Name that is used in selectors as a prefix, e.g. `{name: 'foo'}` enables `foo=myselectorbody` selectors. May only
contain `[a-zA-Z0-9_]` characters.
script : Union[str, None]
Raw script content.
path : Union[pathlib.Path, str, None]
Path to the JavaScript file. If `path` is a relative path, then it is resolved relative to the current working
directory.
content_script : Union[bool, None]
Whether to run this selector engine in isolated JavaScript environment. This environment has access to the same
DOM, but not any JavaScript objects from the frame's scripts. Defaults to `false`. Note that running as a content
script is not guaranteed when this engine is used together with other registered engines.
◆ set_test_id_attribute()
| None playwright.sync_api._generated.Selectors.set_test_id_attribute |
( |
|
self, |
|
|
str |
attribute_name |
|
) |
| |
Selectors.set_test_id_attribute
Defines custom attribute name to be used in `page.get_by_test_id()`. `data-testid` is used by default.
Parameters
----------
attribute_name : str
Test id attribute name.
The documentation for this class was generated from the following file:
- docs/help/help-venv/lib/python3.12/site-packages/playwright/sync_api/_generated.py