← Browser Run / browser-run / reference
Тайм-ауты Quick Actions
Browser Run использует несколько независимых таймеров, чтобы ограничивать длительность отдельных этапов запроса. Если хотя бы один из этих таймеров превышает лимит, запрос завершается с ошибкой тайм-аута.
Каждый таймер отвечает за отдельный этап жизненного цикла рендеринга: загрузку страницы, загрузку селектора и выполнение действия.
| Timer | Область действия | По умолчанию | Макс. |
|---|---|---|---|
goToOptions.timeout |
Время ожидания загрузки страницы до истечения тайм-аута. | 30 с | 60 с |
goToOptions.waitUntil |
Определяет момент, когда загрузка страницы считается завершённой. См. waitUntil параметры для получения подробностей. |
domcontentloaded |
, |
waitForSelector |
Время ожидания появления на странице определённого элемента (любой CSS-селектор). | null | 60 с |
waitForTimeout |
Дополнительное время ожидания после загрузки страницы перед выполнением действий. | null | 60 с |
actionTimeout |
Время ожидания завершения самого действия (например, снимка экрана, PDF или сбора данных) после загрузки страницы. | null | 5 min |
PDFOptions.timeout |
Так же, как и actionTimeout, но применяется только к конечная точка /pdf. |
30 с | 5 min |
waitUntil параметры
goToOptions.waitUntil параметр определяет, когда браузер считает переход на странице завершённым. Это важно для страниц с интенсивным использованием JavaScript, где контент отрисовывается динамически после первоначальной загрузки страницы.
| Значение | Поведение |
|---|---|
load |
Ожидает load событие, включая все ресурсы, такие как изображения и таблицы стилей |
domcontentloaded |
Ожидает полной загрузки содержимого DOM: это событие срабатывает до события load событие (по умолчанию) |
networkidle0 |
Ожидает, пока не останется ни одного активного сетевого подключения в течение как минимум 500 мс |
networkidle2 |
Ожидает, пока число активных сетевых подключений не станет не более двух в течение как минимум 500 мс |
Для страниц, где контент рендерится с помощью JavaScript, используйте networkidle0 или networkidle2 чтобы убедиться, что страница полностью отрендерена перед извлечением данных.
Замечания и рекомендации
Можно задать несколько таймеров: как только сработает хотя бы один из них, запрос будет отправлен.
Если вы не получаете ожидаемый результат:
- Попробуйте увеличить
goToOptions.timeout(до 60 с). - Если требуется дождаться определенного элемента, используйте
waitForSelector. В противном случае используйтеgoToOptions.waitUntilимеет значениеnetworkidle2чтобы убедиться, что страница полностью загрузила динамический контент. - Если у вас появляется
422, долго может выполняться само действие (например, создание снимка экрана, извлечение HTML-содержимого). Попробуйте увеличитьactionTimeoutвзамен.