【问题标题】:Cancel page load in Capybara在 Capybara 中取消页面加载
【发布时间】:2016-03-30 05:16:39
【问题描述】:

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

以下可能的解决方案之一应该可以解决问题,但我很难找到文档或让它们中的任何一个起作用:

a) 发出请求后立即取消页面加载。

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

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

d) 取消加载特定元素

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

【问题讨论】:

  • 运气好吗?你想好怎么做了吗?

标签: ruby selenium-webdriver capybara


【解决方案1】:

在我们的集成测试结束时,我们遇到了未解决的网络请求(Ajax 和资产)的问题,当时所有断言都得到满足,测试结束并被拆除。

因此,我们将 execute_script("window.stop();") 添加到了我们的 integration_test_helper.rb 文件的拆解块中,并且效果很好。

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

【讨论】:

    【解决方案2】:

    在这里,您可以使用 puffing-billy gem 来存根该 iframe 请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多