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

Ожидание

Большинство инструментов выполняют ожидание автоматически: после действия сервер ожидает завершения вызванных им переходов и сетевой активности, прежде чем вернуть снимок состояния. Используйте browser_wait_for, когда нужно дождаться чего-то конкретного.

browser_wait_for​

Ожидание появления или исчезновения текста либо истечения указанного времени. Необходимо указать хотя бы один из параметров time, text или textGone; если указано несколько параметров, сначала проходит указанное время, затем ожидается исчезновение textGone, а затем — появление text.

ПараметрТипОбязательныйОписание
timenumberнетВремя ожидания в секундах (не более 30)
textstringнетТекст, появления которого нужно дождаться
textGonestringнетТекст, исчезновения которого нужно дождаться

Ожидание появления текста​

→ 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 мс).