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,
});
Параметры команды
Имя | Тип | Описание |
url | String | Адрес страницы. |
WaitOpts | Object | Параметры ожидания страницы. Опционален, как и все его поля. |
WaitOpts
Имя | Тип | Описание |
selector | String|String[] | Селектор (/селекторы) элемента (/элементов), которые должны существовать на загруженной странице. |
predicate | () => Promise<bool> | bool | Предикат, возвращающий true , если страница загружена. Выполняется в браузерном контексте: waitUntil. |
waitNetworkIdle | Boolean | Если true , ожидает окончания выполнения всех сетевых запросов. По умолчанию true . Работает только в CDP браузерах, игнорируется для остальных. |
waitNetworkIdleTimeout | Number | Время (в миллисекундах) после окончания всех сетевых запросов, чтобы считать сеть простаивающей. По умолчанию 500. |
failOnNetworkError | Boolean | Нужно ли бросать ошибку при сетевых ошибках. По умолчанию true . Работает только в CDP браузерах, игнорируется для остальных |
shouldThrowError | (match) => Boolean | Предикат, который должен вернуть true по Match, если сетевая ошибка считается критической для корректной загрузки страницы. По умолчанию, возвращает true для картинок, стилей и шрифтов. |
ignoreNetworkErrorsPatterns | Array<String | RegExp> | Паттерны адресов ресурсов, для которых игнорируется проверка успешности загрузки. Имеет приоритет над shouldThrowError . |
timeout | Number | Таймаут открытия страницы. По умолчанию, используется значение 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");
});