Редакция Capybara 302 получила пустую страницу - PullRequest
1 голос
/ 02 марта 2020

Я пишу тест с использованием Capybara 3.11.0. Я захожу на страницу с перенаправлением и хочу проверить содержимое страницы после перенаправления. Капибара по умолчанию следует за редиректом, но я получил пустой результат.

page.driver.post("basket/add/?params=")
page.driver.status_code.should eql 302
page.should have_css(".item-form")

В последней строке не получается, что контент не найден. Если я пытаюсь распечатать контент, перед проверкой кода состояния я получил

page.driver.status_code
=> 302

print page.html
=> nil
page.body.size
=> 0

Но есть сайт, перенаправленный с контроллера с результатом.

Пожалуйста, как я могу получить контент?

Спасибо за помощь

1 Ответ

0 голосов
/ 03 марта 2020

Метод post не выполняет перенаправления, поэтому нет содержимого для проверки. Кроме того, использование любого метода page.driver.xxxx обычно является показателем того, что вы делаете то, что не следует делать с Capybara. Капибара предназначена для использования в функциональных / системных тестах, которые копируют поведение пользователей. Пользователи не заботятся об определенных c кодах статуса, они заботятся только о том, что показано на странице, поэтому вы должны просто использовать обычные page.xxx методы для посещения страницы, взаимодействия с ней и проверки содержимого. Если вы действительно хотите проверить POST S на URL-адресах и проверить коды состояния, вы должны писать тесты запросов (в которых не используется Capybara)

...