2015-10-19 83 views
0

我需要檢查,如果一個元素從頁面上消失,而下面的代碼工作正常,我:獲取等待時間

def checkavailabilitycheck 
    outtime = 10 
    wait = Selenium::WebDriver::Wait.new(:timeout => outtime) 

    begin 
     wait.until { $browser.find_elements(:css, 'img[src="preloader5.gif"]').size == 7 } 
     puts "Check succeeded" 
    rescue Selenium::WebDriver::Error::TimeOutError 
     puts "Check aborted, canceld after " + outtime.to_s + " seconds" 
    end 
end 

現在我想添加類似

puts "Check succeeded after " + wait.tookWhatEverTime + " seconds" 

任何想法這個怎麼做?

回答

2

你可以這樣做:

w1 = Time.now 
begin 
    wait.until { $browser.find_elements(:css, 'img[src="preloader5.gif"]').size == 7 } 
    puts "Check succeeded" 
rescue Selenium::WebDriver::Error::TimeOutError 
    puts "Check aborted, canceld after " + outtime.to_s + " seconds" 
end 
w2 = Time.now 
puts "Check succeeded after " + (w2 - w1) + " seconds" 
+0

您25秒打我後第一個答案:) – debugger89

0

一種方法是你可以節省進入等待之前,在當前的時間。當你從等待中解脫出來的時候,你可以得到時間。

兩者的區別在於等待的時間。

以下是邏輯的僞代碼

timeBeforeEnteringThewait = Time.now 
//Code for the wait 
// after the wait is finished... 
timeAfterThewait = Time.now 

elapsedTime = timeAfterThewait - timeBeforeEnteringThewait