Capybara ждет страницы, чтобы загрузить все элементы полностью с Ruby

1

после долгого бесполезного поиска я хотел бы спросить следующее:

1. Что происходит, особенно после возвращения Capybara {"status" => "success"}? Подождите, пока все элементы будут загружены (например, JS и т.д.)? Или он просто обрабатывает ответ HTTP 200 и отправляет его обратно, не заботясь?

2. Есть ли другой способ заставить Capybara ждать, пока страница полностью загрузит все элементы и функции, кроме настройки таймаута?

Например, есть ли способ рассказать Капибаре: "Был ли JS выполнен во время посещения конкретной страницы?" или "была ли загрузка страницы полностью завершена?".

Буду признателен за любые идеи, спасибо!

Теги:
web-scraping
capybara

1 ответ

0

Поведение visit зависит от водителя, и нет гарантии, что страница полностью загружена (но вы полностью определяете), когда она вернется. Методы ожидания в Capybara - это те, которые ждут определенных элементов. Так

find(:css, '#blah')

будет ждать (до Capybara.default_max_wait_time секунд) для элемента с идентификатором "blah", который появится на странице. Если вы ничего не знаете о структуре страницы, которую посещаете, и о том, какие элементы вы ожидаете от нее, тогда единственный способ - через таймаут.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню