我正在使用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
但是有一个站点从控制器重定向到了结果。
请,如何获取内容?
感谢您的帮助
post
方法不遵循重定向,因此没有要检查的内容。另外,使用任何page.driver.xxxx
方法通常都表明您正在执行不应该使用Capybara执行的操作。 Capybara设计用于复制用户行为的功能/系统测试。用户不在乎特定的状态代码,他们只在乎页面上显示的内容,因此您应该只使用常规的page.xxx
方法访问页面,与页面进行交互并检查内容。如果您确实想测试URL的POST
S并验证状态代码,则应该编写请求测试(不使用Capybara)