Перейти к основному содержимому

Selectors

Селекторы могут быть использованы для установки пользовательских движков селекторов. Подробнее см. в разделе расширяемость.


Методы

register

Добавлено до v1.9 selectors.register

Селекторы должны быть зарегистрированы до создания страницы.

Использование

Пример регистрации движка селекторов, который запрашивает элементы на основе имени тега:

from playwright.sync_api import sync_playwright, Playwright

def run(playwright: Playwright):
tag_selector = """
{
// Возвращает первый элемент, соответствующий данному селектору в поддереве корня.
query(root, selector) {
return root.querySelector(selector);
},
// Возвращает все элементы, соответствующие данному селектору в поддереве корня.
queryAll(root, selector) {
return Array.from(root.querySelectorAll(selector));
}
}"""

# Зарегистрируйте движок. Селекторы будут иметь префикс "tag=".
playwright.selectors.register("tag", tag_selector)
browser = playwright.chromium.launch()
page = browser.new_page()
page.set_content('<div><button>Click me</button></div>')

# Используйте селектор с префиксом его имени.
button = page.locator('tag=button')
# Комбинируйте его с встроенными локаторами.
page.locator('tag=div').get_by_text('Click me').click()
# Можно использовать в любых методах, поддерживающих селекторы.
button_count = page.locator('tag=button').count()
print(button_count)
browser.close()

with sync_playwright() as playwright:
run(playwright)

Аргументы

  • name str#

    Имя, используемое в селекторах в качестве префикса, например, {name: 'foo'} позволяет использовать селекторы foo=myselectorbody. Может содержать только символы [a-zA-Z0-9_].

  • script str (опционально)#

    Содержимое скрипта в сыром виде.

  • content_script bool (опционально)#

    Указывает, следует ли запускать этот движок селекторов в изолированной среде JavaScript. Эта среда имеет доступ к тому же DOM, но не к каким-либо объектам JavaScript из скриптов фрейма. По умолчанию false. Обратите внимание, что запуск в качестве контентного скрипта не гарантируется, если этот движок используется вместе с другими зарегистрированными движками.

  • path Union[str, pathlib.Path] (опционально)#

    Путь к файлу JavaScript. Если path является относительным путем, то он разрешается относительно текущей рабочей директории.

Возвращает


set_test_id_attribute

Добавлено в: v1.27 selectors.set_test_id_attribute

Определяет имя пользовательского атрибута, которое будет использоваться в page.get_by_test_id(). По умолчанию используется data-testid.

Использование

selectors.set_test_id_attribute(attribute_name)

Аргументы

  • attribute_name str#

    Имя атрибута тестового идентификатора.