[英]Getting Watir to wait until all 3rd party scripts have loaded
由於更改了一些CSS以從Googlefonts中加載字體,我發現偶爾在本地運行時,我們的Watir測試會失敗,因為它們正在等待Googlefonts加載並且我們的連接已掛起或正在花費時間。
因為這是一個CSS加載問題,所以頁面的所有元素都可以訪問,所以我不能使用諸如wait_until_present
之類的東西,因為這些東西存在了,但是Watir出於任何原因都不想玩它。
我不想更改我的資產管道以在本地測試時不加載這些內容,因為這違反了健全性測試的目的。
我試圖傳遞類似的東西;
browser.wait.until do
window_loaded = browser.execute_script '$(window).load(function() { return true; });'
window_loaded == true
end
但是我無法解決這個問題,而且我也不相信這將是解決此問題的正確方法。
摘自: http : //watirwebdriver.com/waiting/
require 'watir-webdriver'
b = Watir::Browser.start 'bit.ly/watir-webdriver-demo'
b.select_list(:id => 'entry_1').wait_until_present
b.text_field(:id => 'entry_0').when_present.set 'your name'
b.button(:value => 'Submit').click
b.button(:value => 'Submit').wait_while_present
Watir::Wait.until { b.text.include? 'Thank you' }
您還可以使用:
sleep 2
我個人使用sleep
來等待所有內容加載完畢。 與AJAX一起使用時效果很好。
看到這個答案 。
begin
Timeout::timeout(10) do
# perform actions that may hang here
end
rescue Timeout::Error => msg
put "Recovered from Timeout"
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.