2017-02-27 65 views
0

我們有一些用水豚(Ruby)+ SitePrism + ChromeDriver編寫的測試。水豚和斯特雷普姆:忽略加載的元素

在其中一些測試中,有一個頁面涉及一些非常緩慢加載iframe,導致測試失敗並導致Net :: ReadTimeout異常。

我知道我可以增加超時時間來等待更長的時間,但這會增加測試的總執行時間。

此外,我們並不真正在意iframes本身,只針對該頁面中其餘的元素。

有什麼辦法告訴水豚不要等待iframe加載?

如果這是不可能的,至少可以等待一些預定義的時間,如果時間到期,模擬停止頁面加載(如在實際瀏覽器中按下退出按鈕)?

回答

1

對於使用硒驅動程序時出現的問題,最簡潔的解決方案是使用可編程代理,如膨化比利https://github.com/oesmith/puffing-billy來阻止請求並返回錯誤或靜態內容。如果你使用的是Poltergeist或者capybara-webkit,你可以使用他們的白/黑名單支持來做同樣的事情。

+0

當我正在尋找解決方案來解決我們的問題時,我遇到了一個可以解決的問題。不幸的是,我們不能使用任何額外的庫。你能否給我舉一些不太乾淨的做同樣事情的例子? – Alex

+0

@Alex編寫您自己的代理代碼,增加超時時間,在測試模式下修改頁面源代碼,以便它不加載框架等。它們都是不好的解決方案。膨化比利是一種工具,可以幫助您編寫更好的性能更高的測試,並且我完全理解不向生產環境添加任何額外庫的策略,但這種策略也會阻止您向測試環境中添加有用的工具,這種策略略顯瘋狂。 –

+0

我完全同意你的看法,但不幸的是,我無法做出改變!我結束了與增加的頁面加載超時。 – Alex