Ожидание
Большинство инструментов выполняют ожидание автоматически: после действия сервер ожидает завершения вызванных им переходов и сетевой
активности, прежде чем вернуть снимок состояния. Используйте browser_wait_for, когда нужно дождаться чего-то конкретного.
browser_wait_for
Ожидание появления или исчезновения текста либо истечения указанного времени. Необходимо указать хотя бы один из параметров time, text
или textGone; если указано несколько параметров, сначала проходит указанное время, затем ожидается исчезновение textGone, а затем — появление text.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
time | number | нет | Время ожидания в секундах (не более 30) |
text | string | нет | Текст, появления которого нужно дождаться |
textGone | string | нет | Текст, исчезновения которого нужно дождаться |
Ожидание появления текста
→ browser_wait_for { text: "Upload complete" }
Waited for Upload complete
Ожидание исчезновения текста
→ browser_wait_for { textGone: "Loading..." }
Waited for Loading...
Ожидание в течение заданного времени
→ browser_wait_for { time: 3 }
Waited for 3
Рабочий процесс: ожидание завершения асинхронных операций
Вы: Нажми кнопку загрузки и дождись завершения загрузки.
→ browser_click { target: "e9" }
- progressbar "Uploading..." [ref=e12]
→ browser_wait_for { textGone: "Uploading..." }
- text: Upload complete! File saved.
- link "View file" [ref=e15]
Более сложные условия
Для ожидания условий, которые нельзя выразить сопоставлением текста, — CSS-селектора, предиката JavaScript, определённого
ответа — используйте browser_run_code_unsafe:
→ browser_run_code_unsafe {
code: "async (page) => { await page.waitForSelector('.data-loaded'); }"
}
→ browser_run_code_unsafe {
code: "async (page) => { await page.waitForResponse(r => r.url().includes('/api/items') && r.ok()); }"
}
Тайм-ауты действий и переходов можно настроить с помощью --timeout-action (по умолчанию 5000 мс) и
--timeout-navigation (по умолчанию 60000 мс).