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

addLocatorStrategy

Обзор​

Зарегистрируйте переиспользуемый способ поиска элементов. Затем вызывайте стратегию через custom$ или custom$$ у браузера или элемента.

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

browser.addLocatorStrategy(name, strategy)

Параметры​

ПараметрТипПо умолчаниюОписание
namestringОбязателенУникальное имя стратегии в объекте браузера.
strategyFunctionОбязателенБраузерная функция, возвращающая DOM-элемент или массив DOM-элементов. Перед возвратом преобразуйте NodeList через Array.from.

Результат​

void. Регистрация синхронная и сама по себе не выполняет поиск.

Ограничения​

Зарегистрируйте стратегию до первого использования. Повторная регистрация имени вызывает ошибку. Callback выполняется в браузере и не может читать замыкания Node.js. Для общего использования зарегистрируйте стратегию в prepareBrowser.

Пример​

Настройте baseUrl на свой локальный тестовый HTTP-сайт, где / возвращает HTML-страницу. Пример выполняется внутри обычного файла тестов Testplane.

const assert = require("node:assert/strict");

it("addLocatorStrategy: find by data attribute", async ({ browser }) => {
await browser.url("/");
await browser.execute(() => {
document.body.innerHTML = '<button data-test="save">Save</button>';
});
browser.addLocatorStrategy("byTest", value => document.querySelector(`[data-test="${value}"]`));
const button = await browser.custom$("byTest", "save");
assert.equal(await button.getText(), "Save");
});

См. также​