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

custom$$

Обзор​

Найдите несколько элементов с помощью зарегистрированной стратегии. Если DOM API возвращает NodeList, преобразуйте его через Array.from внутри стратегии.

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

browser.custom$$(strategyName, ...strategyArguments)

Параметры​

ПараметрТипПо умолчаниюОписание
strategyNamestringОбязателенИмя зарегистрированной стратегии.
strategyArgumentsunknown[][]Аргументы браузерной функции стратегии.

Результат​

Ожидаемая коллекция, разрешающаяся в массив объектов WebdriverIO.Element. Если совпадений нет, возвращается пустой массив.

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

Неизвестное имя стратегии вызывает ошибку. Команда возвращает совпадения на момент поиска и не ожидает появления заданного количества элементов.

Пример​

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

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

it("custom$$: find several elements", async ({ browser }) => {
await browser.url("/");
await browser.execute(() => {
document.body.innerHTML = "<ul><li>First</li><li>Second</li></ul>";
});
browser.addLocatorStrategy("byCss", selector =>
Array.from(document.querySelectorAll(selector)),
);
const items = await browser.custom$$("byCss", "li");
assert.equal(items.length, 2);
assert.equal(await items[1].getText(), "Second");
});

См. также​