Я использую рубиновый гем watir-webdriver. Он запускает браузер (Chrome) и начинает загружать страницу. Страница загружается слишком медленно, и watir-webdriver выдает ошибку тайм-аута. Как заставить браузер перестать загружать страницу?
require 'watir-webdriver'
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 10
@browser = Watir::Browser.new :chrome, :http_client => client
sites = [
"http://google.com/",
"http://yahoo.com/",
"http://www.nst.com.my/", # => This is the SLOW site
"http://drupal.org/",
"http://www.msn.com/",
"http://stackoverflow.com/"
]
sites.each do |url|
begin
@browser.goto(url)
puts "Success #{url}"
rescue
puts "Timeout #{url}"
end
end
########## Execution result ##########
# Success http://google.com/
# Success http://yahoo.com/
# Timeout http://www.nst.com.my/
# Timeout http://drupal.org/
# Timeout http://www.msn.com/
# Timeout http://stackoverflow.com/
########## Expected result ##########
# Success http://google.com/
# Success http://yahoo.com/
# Timeout http://www.nst.com.my/
# Success http://drupal.org/
# Success http://www.msn.com/
# Success http://stackoverflow.com/
Похоже, что браузер не отвечает ни на какие другие команды до завершения загрузки страницы. Как я могу заставить браузер отказаться от загружаемой страницы и выполнить следующую команду?
ОБНОВЛЕНО
Я нашел интересный флаг возможности loadAsync http://src.chromium.org/svn/trunk/src/chrome/test/webdriver/webdriver_capabilities_parser.ccВозможно, это может быть полезно для решения этой проблемы? Я пока не понимаю, как сделать watir (webdriver), чтобы установить это при запуске chromedriver. Этот флаг был введен здесь http://codereview.chromium.org/7582005/