【发布时间】:2012-04-06 06:31:59
【问题描述】:
根据我对文档的理解,这个一般的approach 应该可以工作:
begin
try1
rescue
try2
rescue
try3
.
.
.
rescue
puts "Everybody failed, sorry man!"
end
但是,每当我尝试打开 Watir-Webdriver 浏览器时,它似乎永远不会尝试超过第二个 $browser = Watir::Browser.new,在第 189 行以 连接被拒绝 - connect(2) (Errno::ECONNREFUSED)
代码.rb:
begin
$browser = Watir::Browser.new(:firefox, :profile => "botmode") # **line 186**
rescue
$browser = Watir::Browser.new(:remote, :url => "http://127.0.0.1:4444/wd/hub", :desired_capabilities => :firefox) # **line 189**
rescue # local selenium htmlunit
puts __LINE__.to_s + ": #{$!}"
# $browser = Watir::Browser.new(:remote, :url => "http://127.0.0.1:4444/wd/hub", :desired_capabilities => :htmlunit) # but needs Javascript for AJAX support...
$browser = Watir::Browser.new(:remote, :url => "http://127.0.0.1:4444/wd/hub", :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.htmlunit(:javascript_enabled => true, :cssSelectorsEnabled=>true, :nativeEvents=>false) )
rescue # Try to use VentanaPC if still failing..
$browser = Watir::Browser.new(:remote, :url => "http://5.19.111.226:4444/wd/hub", :desired_capabilities => :firefox)
rescue # no browser left to failover to
puts __LINE__.to_s + ": #{$@.to_s}"
end
# ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
为了让第186行失败,我特意将DISPLAY=:88提前设置为一个不存在的Xserver,所以这个错误是可以的:186: unable to get stable firefox connection in 60 seconds (127.0.0.1:第7055章)
我在哪里出错了,或者有更好的方法吗?这是 Selenium 或 Watir 特有的东西吗?
【问题讨论】:
标签: ruby exception-handling selenium watir-webdriver rescue