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

Selectors

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


Методы

register

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

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

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

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

// Скрипт, который оценивается в экземпляр движка селекторов. Скрипт оценивается в контексте страницы.
String createTagNameEngine = "{\n" +
" // Возвращает первый элемент, соответствующий данному селектору в поддереве корня.\n" +
" query(root, selector) {\n" +
" return root.querySelector(selector);\n" +
" },\n" +
" // Возвращает все элементы, соответствующие данному селектору в поддереве корня.\n" +
" queryAll(root, selector) {\n" +
" return Array.from(root.querySelectorAll(selector));\n" +
" }\n" +
"}";
// Регистрируем движок. Селекторы будут иметь префикс "tag=".
playwright.selectors().register("tag", createTagNameEngine);
Browser browser = playwright.firefox().launch();
Page page = browser.newPage();
page.setContent("<div><button>Click me</button></div>");
// Используем селектор с префиксом его имени.
Locator button = page.locator("tag=button");
// Комбинируем его с встроенными локаторами.
page.locator("tag=div").getByText("Click me").click();
// Можно использовать в любых методах, поддерживающих селекторы.
int buttonCount = (int) page.locator("tag=button").count();
browser.close();

Аргументы

  • name String#

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

  • script String | Path#

    Скрипт, который оценивается в экземпляр движка селекторов. Скрипт оценивается в контексте страницы.

  • options Selectors.RegisterOptions (опционально)

    • setContentScript boolean (опционально)#

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

Возвращает


setTestIdAttribute

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

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

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

Selectors.setTestIdAttribute(attributeName);

Аргументы

  • attributeName String#

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