我有一個頁面有時會在一分鐘內加載。假設這是預期的行爲,並且不會改變。在這些情況下,我得到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