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

openAndWait

Обзор

Используйте команду openAndWait для открытия страницы и ожидания ее загрузки (по комбинации указанных факторов).

Функции ожидания неактивности сети и падения по сетевым ошибкам доступны только при использовании браузеров с поддержкой Chrome DevTools Protocol (CDP).

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

await browser.openAndWait("some/url", {
selector: [".some", ".selector"],
predicate: () => document.isReady,
ignoreNetworkErrorsPatterns: ["https://mc.yandex.ru", "https://avatars.mds.yandex.net/*"],
waitNetworkIdle: true,
waitNetworkIdleTimeout: 500,
failOnNetworkError: true,
timeout: 20000,
});

Параметры команды

ИмяТипОписание
urlStringАдрес страницы.
WaitOptsObjectПараметры ожидания страницы. Опционален, как и все его поля.

WaitOpts

ИмяТипОписание
selectorString|String[]Селектор (/селекторы) элемента (/элементов), которые должны существовать на загруженной странице.
predicate() => Promise<bool> | boolПредикат, возвращающий true, если страница загружена. Выполняется в браузерном контексте: waitUntil.
waitNetworkIdleBooleanЕсли true, ожидает окончания выполнения всех сетевых запросов. По умолчанию true. Работает только в CDP браузерах, игнорируется для остальных.
waitNetworkIdleTimeoutNumberВремя (в миллисекундах) после окончания всех сетевых запросов, чтобы считать сеть простаивающей. По умолчанию 500.
failOnNetworkErrorBooleanНужно ли бросать ошибку при сетевых ошибках. По умолчанию true. Работает только в CDP браузерах, игнорируется для остальных
shouldThrowError(match) => BooleanПредикат, который должен вернуть true по Match, если сетевая ошибка считается критической для корректной загрузки страницы. По умолчанию, возвращает true для картинок, стилей и шрифтов.
ignoreNetworkErrorsPatternsArray<String | RegExp>Паттерны адресов ресурсов, для которых игнорируется проверка успешности загрузки. Имеет приоритет над shouldThrowError.
timeoutNumberТаймаут открытия страницы. По умолчанию, используется значение pageLoadTimeout. Выбрасывается исключение, если по истечени времени селекторы все еще не существуют, или предикат все еще резолвит false

Примеры использования

it("some test", async ({ browser }) => {
// С `waitNetworkIdle` также ожидаем загрузки картинок, шрифтов, стилей, игнорируя ошибки метрики
await browser.openAndWait("some/url", {
selector: [".selector"],
predicate: () => document.isReady,
ignoreNetworkErrorsPatterns: ["https://mc.yandex.ru"],
waitNetworkIdle: true,
waitNetworkIdleTimeout: 500,
failOnNetworkError: true,
timeout: 20000,
});

await browser.assertView("plain", ".selector");
});