- Загрузите 1–5 фотографий.
- Загрузите MP3.
- Введите короткую анимированную подсказку.
- Нажмите «Создать».
Код: Выделить всё
# 1. Fixed wait – works but wasteful
await page.wait_for_timeout(120_000)
# 2. Wait for visible element (flaky – element sometimes appears before video is actually ready)
await page.wait_for_selector('#download-btn', state='visible', timeout=180_000)
# 3. Simple polling
async def wait_for_video():
for _ in range(60): # ~3 min max
if await page.locator('.video-player').count() > 0 and await page.locator('.video-player video[src]').count() > 0:
return
await page.wait_for_timeout(3000)
raise TimeoutError
- DOM — это SPA в стиле React/Vue → элементы используются повторно, классы/идентификаторы меняются между поколениями.
- Нет очевидного «идентификатора задания» или конечной точки опроса на вкладке сети (по крайней мере, не очевидно для меня).
- Сеть простой не помогает, потому что генерация происходит на стороне сервера.
- Использование page.wait_for_function() с условием JavaScript (например, проверка video.duration или src)
- Ожидание определенного ответа сети (если есть конечная конечная точка /result)
- Любой другой шаблон, который люди используют для подобных инструментов ИИ (Потоки похожие у «ВПП», «Пика», «Клинг» и т. д.)
Подробнее здесь: https://stackoverflow.com/questions/798 ... result-dyn
Мобильная версия