在Capybara取消页面加载

时间:2016-03-30 05:16:39

标签: ruby selenium-webdriver capybara

我正在测试一个包含令人讨厌的iframe的页面,这需要很长时间才能加载;但是,我没有测试iframe本身。如果可能的话,我希望能够在不必每次都等待这个iframe的情况下运行我的测试。

以下潜在解决方案之一应该可以解决问题,但是我在查找文档或让其中任何一个工作时遇到困难:

  

a)在请求发出后不久取消页面加载。

     

b)使用send_keys方法在加载页面时模拟 Escape

     

c)在页面加载时使用javascript - page.execute_script("return window.stop();")

     

d)取消加载特定元素

如何使用Capybara向加载页面或元素发送取消请求?

2 个答案:

答案 0 :(得分:1)

我们在集成测试结束时遇到了未完成的网络请求(包括Ajax和资产)的问题,当时所有的断言都已经完成并且测试结束并且被拆除。

所以我们将execute_script("window.stop();")添加到我们的integration_test_helper.rb文件中,在拆解块中,它运行得非常好。

所以我建议在iframe完全加载之前添加一个可以满足的断言,并在测试的拆解中运行window.stop()

答案 1 :(得分:0)

在此处使用Altnerative,您可以使用puffing-billy gem来存储iframe请求。