0

我在复杂的 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 之间:检查框架是否存在可能需要 50 秒?

在 chrome 中,整个脚本不到 10 秒(如我所愿)

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

4

1 回答 1

0

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

于 2013-10-08T12:01:09.450 回答