【发布时间】:2014-06-02 09:57:50
【问题描述】:
我对 Rspec/Capybara 很陌生。
我想测试在访问方法完全加载页面之前,我可以多快在页面中加载我的主要内容。
如果我这样做
starts = Time.now
visit "/"
pp Time.now - starts ******(this will start after visit "/" fully loaded)
test_time = Time.now - starts
test_time.should < 10
控制台中的输出将是 10.xxxx(10 秒),因为它在完成加载我的主页(完全加载页面中的所有内容)后执行 pp 方法。
有没有我可以做这样的事情?
starts = Time.now
visit "/" do (visit and do something while it is loading)
break if page.has_content("Main content appeared now !!") (Detect if the page has content "Main content appeared now !!" then break and stop loading page
end
pp Time.now - starts
test_time = Time.now - starts
test_time.should < 10
结果将类似于 2.12342(因为我们停止访问以在检测到内容时停止加载
或者我可以在页面加载时检测内容的任何其他方式。
【问题讨论】:
-
如果你能弄清楚你正在尝试测试的是什么,这可能会有所帮助。你正在执行什么行动,你想要断言什么?此外,显示一些代码会有所帮助。
-
我确实编辑了我的问题,对我最初的问题感到抱歉。谢谢你的建议。
-
你的问题现在用代码更清楚了,所以我投票决定重新打开它。请记住,如果您包含您已经尝试或正在尝试的代码,StackOverflow 问题通常会收到肯定的响应。
-
也就是说,我对这个问题的回答是,您可能无法使用 Capybara 完成您所寻求的。 Capybara 内置了许多功能,可确保在执行任何操作之前加载所有脚本和内容。我不会反对。
-
“主要内容”和所有内容有什么区别?你说的是Javascript之前和之后吗?
标签: ruby-on-rails ruby rspec capybara automated-tests