2015-10-19 81 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