水豚302重定向页面为空

问题描述 投票:1回答:1

我正在使用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

但是有一个站点从控制器重定向到了结果。

请,如何获取内容?

感谢您的帮助

ruby testing capybara
1个回答
0
投票

post方法不遵循重定向,因此没有要检查的内容。另外,使用任何page.driver.xxxx方法通常都表明您正在执行不应该使用Capybara执行的操作。 Capybara设计用于复制用户行为的功能/系统测试。用户不在乎特定的状态代码,他们只在乎页面上显示的内容,因此您应该只使用常规的page.xxx方法访问页面,与页面进行交互并检查内容。如果您确实想测试URL的POST S并验证状态代码,则应该编写请求测试(不使用Capybara)

© www.soinside.com 2019 - 2024. All rights reserved.