Capybara增加最大允许页面加载时间
我有一个页面,有时加载超过一分钟。 假设这是预期的行为并且不会改变。 在这些情况下,我得到Net::ReadTimeout
。
请注意,这是在通过单击上一页上的按钮而不是ajax请求导航到页面之后。 因此, Capybara.using_wait_time
没有帮助。
我尝试了一些激进的东西(其中一些我知道不会起作用),如:
- 设置
page.driver.browser.manage.timeouts
的implicit_wait
,script_timeout
和page_load
。 - 循环遍历整个对象空间并设置所有
Selenium::WebDriver::Remote::Http::Default
的timeout
值。 - 循环遍历整个对象空间并设置所有
Net::HTTP
的read_timeout
。 -
page.driver.browser.send(:bridge).http.instance_variable_get(:@http).read_timeout=
似乎没有工作。 这应该是非常微不足道的,但我找不到办法。
如果你知道一个很棒的webdriver不可知解决方案。 如果没有 – 我正在使用selenium 。
Selenium有很多不同的超时设置,其中一些可以在运行时更改,另一些必须在初始化驱动程序时设置。 您最有可能遇到Http :: Default超时,默认为60秒。 您可以通过将您自己的实例作为http_client传递给Selenium驱动程序来覆盖它
Capybara.register_driver :slow_selenium do |app| client = Selenium::WebDriver::Remote::Http::Default.new client.timeout = 120 Capybara::Selenium::Driver.new(app, http_client: client) end
然后使用:slow_selenium驱动程序进行测试,这将花费一分多钟来加载页面
- Capybara无法识别动态添加的DOM元素?
- 使用Capybara / Rspec使用will_paginate Gem测试视图
- RSpec + Capybara请求规格w / JS无法正常工作
- FactoryGirl – validation失败:时区未包含在列表中
- 在RSpec请求规范中使用Capybara时,设置自定义请求标头的最佳方法是什么?
- Capybara-webkit引发了Capybara :: Driver :: Webkit :: WebkitInvalidResponseError
- 检查Capybara的复选框
- 未定义的方法’has_selector?’ 用于rspec装饰器
- Capybara :: ElementNotFound仅适用于特拉维斯的所有规格