Skip to main content

Selectors

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


Методы

register

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

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

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

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

const { selectors, firefox } = require('@playwright/test');  // Или 'chromium' или 'webkit'.

(async () => {
// Должна быть функция, которая возвращает экземпляр движка селекторов.
const createTagNameEngine = () => ({
// Возвращает первый элемент, соответствующий данному селектору в поддереве корня.
query(root, selector) {
return root.querySelector(selector);
},

// Возвращает все элементы, соответствующие данному селектору в поддереве корня.
queryAll(root, selector) {
return Array.from(root.querySelectorAll(selector));
}
});

// Зарегистрируйте движок. Селекторы будут иметь префикс "tag=".
await selectors.register('tag', createTagNameEngine);

const browser = await firefox.launch();
const page = await browser.newPage();
await page.setContent(`<div><button>Click me</button></div>`);

// Используйте селектор с префиксом его имени.
const button = page.locator('tag=button');
// Мы можем комбинировать его с встроенными локаторами.
await page.locator('tag=div').getByText('Click me').click();
// Можно использовать в любых методах, поддерживающих селекторы.
const buttonCount = await page.locator('tag=button').count();

await browser.close();
})();

Аргументы

  • name string#

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

  • script function | string | Object#

    • path string (опционально)

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

    • content string (опционально)

      Сырой контент скрипта. Опционально.

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

  • options Object (опционально)

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

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

Возвращает


setTestIdAttribute

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

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

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

selectors.setTestIdAttribute(attributeName);

Аргументы

  • attributeName string#

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