watir在帧控制中丢失了时间

时间:2013-10-07 14:37:23

标签: ruby firefox watir-webdriver

我在复杂的watir脚本中遇到了性能问题。我隔离了部分代码,结果就是这样:

# Load browser and test page
@browser = Watir::Browser.new :chrome
@browser.goto ("http://myurl")

# Start to inspect time of script
puts "0 - Start             : " + Time.new.inspect

# Get active frame
frame = @browser.frame(:id => 'myFrame0123')
puts "1 - Frame is a variable   : " + Time.new.inspect

puts frame.exists?
puts "2 - Getting frame src         : " + Time.new.inspect

# play
frame.link(:class => "playButton").click # should be fast
puts "3 - Clicking link in frame    : " + Time.new.inspect

puts frame.exists?                  # should be instant
puts "4 - Getting frame src         : " + Time.new.inspect

# Closing
@browser.close

代码打开测试页,检测框架,然后单击框架中的链接。

这里的结果是firefox:

0 - Start                       : 2013-10-07 15:41:40 +0200
1 - Frame is a variable         : 2013-10-07 15:41:40 +0200
true
2 - Getting frame src           : 2013-10-07 15:41:40 +0200
3 - Clicking link in frame      : 2013-10-07 15:42:01 +0200
true
4 - Getting frame src           : 2013-10-07 15:42:54 +0200

时间流逝:

  • 介于2和3之间:我不明白框架中链接的点击如何花费20秒?
  • 3到4之间:如何检查fram的存在可能需要50s?

在chrome中,整个脚本只需不到10秒(按照我的意愿)

版本:ruby 1.9.3,watir-webdriver 0.6.4,firefox 21,23,24。

1 个答案:

答案 0 :(得分:0)

最后找到原因:在我使用的框架中,有一个不存在的图像。 Firefox很慢并且等待域响应,这就是时间丢失的原因。