Селекторы
Селекторы могут использоваться для установки пользовательских движков селекторов. Смотрите расширяемость для получения дополнительной информации.
Методы
register
Добавлено до версии 1.9Селекторы должны быть зарегистрированы до создания страницы.
Использование
Пример регистрации движка селектора, который запрашивает элементы на основе имени тега:
const { selectors, firefox } = require('@playwright/test'); // Or 'chromium' or 'webkit'.
(async () => {
// Must be a function that evaluates to a selector engine instance.
const createTagNameEngine = () => ({
// 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=".
await selectors.register('tag', createTagNameEngine);
const browser = await firefox.launch();
const page = await browser.newPage();
await page.setContent(`<div><button>Click me</button></div>`);
// Use the selector prefixed with its name.
const button = page.locator('tag=button');
// We can combine it with built-in locators.
await page.locator('tag=div').getByText('Click me').click();
// Can use it in any methods supporting selectors.
const buttonCount = await page.locator('tag=button').count();
await browser.close();
})(); Аргументы
-
nameстрокаИмя, используемое в селекторах в качестве префикса, например,
{name: 'foo'}включаетfoo=myselectorbodyселекторы. Может содержать только[a-zA-Z0-9_]символы. -
scriptфункция | строка | объект-
pathстрока (необязательно)Путь к файлу JavaScript. Если
pathявляется относительным путем, то он разрешается относительно текущей рабочей директории. Необязательно. -
contentстрока (необязательно)Сырой код скрипта. Необязательно.
Скрипт, который вычисляет экземпляр движка селектора. Скрипт оценивается в контексте страницы.
-
-
optionsобъект (необязательно)-
contentScriptбулево (необязательно)Определяет, следует ли запускать этот движок селектора в изолированной JavaScript-среде. Эта среда имеет доступ к тому же DOM, но не к каким-либо JavaScript-объектам из скриптов фрейма. По умолчанию
false. Обратите внимание, что запуск в качестве скрипта контента не гарантируется, когда этот движок используется вместе с другими зарегистрированными движками.
-
Возвращает
setTestIdAttribute
Определяет пользовательское имя атрибута, которое будет использоваться в page.getByTestId(). По умолчанию используется data-testid.
Использование
selectors.setTestIdAttribute(attributeName);
Аргументы
-
attributeNameстрокаИмя атрибута test id.
© 2024 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-selectors