Насколько я понимаю документы, этот общий подход должен работать:
begin
try1
rescue
try2
rescue
try3
.
.
.
rescue
puts "Everybody failed, sorry man!"
end
Однако всякий раз, когда я пытаюсь открыть браузер Watir-Webdriver, кажется, что он никогда не пытается дальше второго $browser = Watir::Browser.new, заканчивая скрипт в строке 189 с отказом в соединении - подключить(2) (Errno::ECONREFUSED)
Код.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 + ": #{[email protected]_s}"
end
# ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
Чтобы строка 186 не работала, я намеренно заранее установил DISPLAY=:88 на несуществующий X-сервер, так что эта ошибка в порядке: 186: невозможно установить стабильное соединение Firefox за 60 секунд (127.0.0.1:7055)< /эм>
Где я ошибаюсь, или есть лучший способ сделать это? Это что-то особенное для Selenium или Watir?