水豚增加最大允许页面加载时间
Capybara increase max allowed page load time
我有一个页面有时加载时间超过一分钟。假设这是预期的行为并且不会改变。在这些情况下,我得到 Net::ReadTimeout
.
请注意,这是在通过单击上一页上的按钮导航到某个页面之后发生的,而不是 ajax 请求。因此 Capybara.using_wait_time
没有帮助。
我尝试了一些激进的方法(其中一些我知道行不通),例如:
- 设置
page.driver.browser.manage.timeouts
的 implicit_wait
、script_timeout
和 page_load
。
- 遍历整个对象 space 并设置所有
Selenium::WebDriver::Remote::Http::Default
的 timeout
值。
- 遍历整个对象space并设置所有
Net::HTTP
的 read_timeout
.
page.driver.browser.send(:bridge).http.instance_variable_get(:@http).read_timeout=
None 似乎有效。这应该是非常微不足道的,但我仍然找不到方法。
如果您知道与 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 驱动程序进行测试,加载页面需要一分钟多的时间
我有一个页面有时加载时间超过一分钟。假设这是预期的行为并且不会改变。在这些情况下,我得到 Net::ReadTimeout
.
请注意,这是在通过单击上一页上的按钮导航到某个页面之后发生的,而不是 ajax 请求。因此 Capybara.using_wait_time
没有帮助。
我尝试了一些激进的方法(其中一些我知道行不通),例如:
- 设置
page.driver.browser.manage.timeouts
的implicit_wait
、script_timeout
和page_load
。 - 遍历整个对象 space 并设置所有
Selenium::WebDriver::Remote::Http::Default
的timeout
值。 - 遍历整个对象space并设置所有
Net::HTTP
的read_timeout
. page.driver.browser.send(:bridge).http.instance_variable_get(:@http).read_timeout=
None 似乎有效。这应该是非常微不足道的,但我仍然找不到方法。
如果您知道与 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 驱动程序进行测试,加载页面需要一分钟多的时间