Capybara работает против активной страницы, поэтому нет возможности (в текущих версиях выпуска) заморозить страницу в ее текущем состоянии (на самом деле не на 100% верно, поскольку вы можете использовать document = Capybara.string(page.html)
для захвата источника страницы изатем используйте искатели / совпадения / и т. д. для документа, но вы потеряете CSS, JS и т. д.).Поскольку assert_text
/ refute_text
может принимать регулярное выражение, вы можете просто объединить все свои опровержения в одно
refute_text(/Edit|Submit|Cancel/)
, которое может привести вас к срокам (хотя все, что зависит от времени, может сломаться в некоторыхуказывает на то, что оборудование работает на изменения и т. д.)
Если проблема возникла с другой стороны, проблему можно описать, поскольку ваш запрос AJAX возвращается слишком быстро.Вы можете настроить свои данные, чтобы сделать запрос более длительным, вы можете использовать прокси-сервер для задержки вашего запроса (puffing_billy и т. Д.) Или, если вы используете селен с Chrome, вы можете посмотреть на метод network_condtions=
, доступный в драйвере селена
page.driver.browser.network_conditions=(...)
как способ замедлить ваш запрос.Это ограничило бы выполнение теста только в Chrome, что может или не может быть приемлемо для вас.
Другой вариант, если вы используете Chrome и хотите попробовать бета-код, - это использовать page_freeze ветвь капибары, которая добавляет
page.driver.freeze_page # Pause page activities
page.driver.thaw_page # Resume page activities