我们有一些用Capybara(Ruby)和SitePrism + ChromeDriver编写的测试。
在其中一些测试中,有一个页面涉及到一些非常慢的加载iframe,并且导致测试因Net :: ReadTimeout异常而失败。
我知道我可以将超时等待更长时间,但这会增加测试的总执行时间。
此外,我们并不真正关心iframe本身,只关注该页面中的其他元素。
有没有办法告诉Capybara不要等iframe加载?
如果不可能,至少可以等待一段预定义的时间,如果该时间到期,则模拟停止页面加载(比如在实际浏览器中按下转义按钮)?
答案 0 :(得分:1)
使用selenium驱动程序时最干净的解决方案是使用puffing-billy https://github.com/oesmith/puffing-billy之类的可编程代理来阻止请求并返回错误或静态内容。如果您使用的是Poltergeist或capybara-webkit,您可以使用他们的白/黑名单支持来做同样的事情。