Selectors
Селекторы могут быть использованы для установки пользовательских движков селекторов. Подробнее см. в разделе расширяемость.
Методы
register
Добавлено до версии v1.9Селекторы должны быть зарегистрированы до создания страницы.
Использование
Пример регистрации движка селекторов, который запрашивает элементы на основе имени тега:
// Скрипт, который оценивается в экземпляр движка селекторов. Скрипт оценивается в контексте страницы.
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: 'foo'}
позволяет использовать селекторыfoo=myselectorbody
. Может содержать только символы[a-zA-Z0-9_]
. -
Скрипт, который оценивается в экземпляр движка селекторов. Скрипт оценивается в контексте страницы.
-
options
Selectors.RegisterOptions
(опционально)-
setContentScript
boolean (опционально)#Указывает, следует ли запускать этот движок селекторов в изолированной среде JavaScript. Эта среда имеет доступ к тому же DOM, но не к каким-либо объектам JavaScript из скриптов фрейма. По умолчанию
false
. Обратите внимание, что запуск в качестве контентного скрипта не гарантируется, если этот движок используется вместе с другими зарегистрированными движками.
-
Возвращает
setTestIdAttribute
Добавлено в: v1.27Определяет имя пользовательского атрибута, которое будет использоваться в Page.getByTestId(). По умолчанию используется data-testid
.
Использование
Selectors.setTestIdAttribute(attributeName);
Аргументы