在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。
当我点击链接并且页面加载有某种类型的失败(尽管测试本身没有失败)时,页面加载似乎出现了问题。有什么想法吗?
答案 0 :(得分:1)
请试试这个:
页面加载需要一些时间。使用睡眠功能。它需要一些时间等待。
然后使用 page.find(“#menu_agents”)。点击而不是 page.find_by_id('menu_agents')。点击
验证menu_agents id name不存在于结果页面中的任何其他位置。
注意:确保menu_agents id是唯一的。
it "should go to agents page" do
visit 'home'
sleep 5
page.find("#menu_agents").click
puts page.body
#<various content asserts on page currently commented out
end