Capybara和Siteprism:忽略加载

时间:2017-02-27 23:52:27

标签: ruby timeout capybara selenium-chromedriver site-prism

我们有一些用Capybara(Ruby)和SitePrism + ChromeDriver编写的测试。

在其中一些测试中,有一个页面涉及到一些非常慢的加载iframe,并且导致测试因Net :: ReadTimeout异常而失败。

我知道我可以将超时等待更长时间,但这会增加测试的总执行时间。

此外,我们并不真正关心iframe本身,只关注该页面中的其他元素。

有没有办法告诉Capybara不要等iframe加载?

如果不可能,至少可以等待一段预定义的时间,如果该时间到期,则模拟停止页面加载(比如在实际浏览器中按下转义按钮)?

1 个答案:

答案 0 :(得分:1)

使用selenium驱动程序时最干净的解决方案是使用puffing-billy https://github.com/oesmith/puffing-billy之类的可编程代理来阻止请求并返回错误或静态内容。如果您使用的是Poltergeist或capybara-webkit,您可以使用他们的白/黑名单支持来做同样的事情。