我正在使用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但是有一个结果是从控制器重定向的站点。
请问,我怎样才能获得内容?
感谢你的帮助
发布于 2020-03-03 14:18:38
post方法不遵循重定向,因此没有要检查的内容。此外,使用任何page.driver.xxxx方法通常都表明您正在做一些不应该使用Capybara做的事情。Capybara被设计用于复制用户行为的功能/系统测试。用户不关心特定的状态代码,他们只关心页面上显示的内容,所以您应该只使用普通的page.xxx方法来访问页面、与其交互并检查内容。如果你真的想测试POSTS to URL并验证状态码,你应该编写请求测试(不使用Capybara)
https://stackoverflow.com/questions/60495195
复制相似问题