2011-05-25 48 views
1

代碼使用watir-webdriver,如何在不等待頁面加載的情況下觸發事件?

for i in 0..10 
    $browser.link(:id => "send_link").fire_event("onclick") 
    puts "Click #" + i.to_s 
end 

僅顯示有崩潰無法找到元素錯誤之前「點擊#0」到控制檯。我需要它點擊鏈接10次,即使頁面正嘗試從第一次點擊加載。有沒有辦法使用watir-webdriver來做到這一點,或者我將不得不使用win32api來劫持鼠標並點擊鼠標嗎?

編輯:暫時,我試圖通過使用硬件點擊方法來解決這個問題,該方法適用於我使用watir和IE8的不同問題,但它似乎不適用於watir-webdriver和Firefox 4.

http://wiki.openqa.org/display/WTR/Right+Click+an+Element

+0

單擊鏈接時會發生什麼?它是否將瀏覽器帶到另一個頁面? – 2011-05-25 23:19:07

+0

這是你真正的問題的一個側面問題,但你意識到你在上面指定的循環中有'fencepost'錯誤?它將迭代11次,而不是10次。你想爲「我在0..9」或「爲我在1..10」或類似'10 .times do | i |'而不是當前的循環。 – 2011-05-25 23:24:38

+0

當我點擊鏈接時,會運行一個在服務器端進行處理的ruby函數。當瀏覽器等待處理完成時,微調器在屏幕上動畫。 – Roderick 2011-05-26 03:41:48

回答

0

你嘗試使用.click_no_wait,看看是否會爲你工作?

10.times do |i| 
    $browser.link(:id => "send_link").click_no_wait 
    puts "Click #" + i.to_s 
end 
+0

我記得之前嘗試在watir-webdriver中使用click_no_wait,並且我記得沒有工作,所以我不認爲在這種情況下再嘗試一次。當我回家時我會嘗試。 – Roderick 2011-05-26 03:40:13

+1

我嘗試使用click_no_wait並得到未定義的方法錯誤。 watir-webdriver似乎根本沒有這個功能。 – Roderick 2011-05-26 13:39:50

相關問題