在 Rails 3.2 中,我使用的是 rspec (2.11.0) 和 capybara 1.1.2(并且没有安装 webrat),当我单击网页上的链接时,它会做一些奇怪的事情。
我正在尝试单击主页上的链接以转到另一个页面。下面是基本的 rspec 测试。
it "should go to agents page" do
visit 'home'
#puts page.body
#links = page.all('a')
#links.each do |l|
# puts l.text
#end
page.find_by_id('menu_agents').click
puts page.body
#<various content asserts on page currently commented out>
end
我基本上去一个页面,抓住一个链接然后点击
链接存在。正如您从注释掉的语句中看到的那样,我通过查看控制台中的页面并查看链接列表来确认。我不仅尝试使用上面的链接单击,还尝试使用click_link
和引用 id。当我运行代码时查看代码和页面的 html,我看到了元素的 id。
在所有情况下,我都会得到以下结果:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
通过单击链接运行软件时,rails s
确实会加载正确的页面。同样,当我在测试中访问主页时,它也会正确加载,因为当我将正文打印到控制台时,我会看到正确的 html。
当我单击链接并且页面加载出现某种类型的失败时,页面加载似乎出现问题(尽管测试本身没有失败)。有任何想法吗?