我有一个页面有时会在一分钟内加载。假设这是预期的行为,并且不会改变。在这些情况下,我得到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不可知的解决方案,将是伟大的。如果没有 - 我使用硒。
我的2美分:自动化所有关于快速反馈,如果您的应用程序需要超过一分钟加载,增加页面超时不是答案,将您的应用程序加载时间缩短是你应该关注的...... – Bodao
@ user3087106,我完全同意。但是,在目前的情况下,这不适用。假设我正在测试其他人的在线项目,并且他们不愿意投入优化操作所需的资源/将其放在后台进程或其他任何项目中。 – ndn
您是否试过增加Capybara.default_max_wait_time(默认值为2秒),以及仅在新页面上提供的元素的断言? – Sam