私はwatir-webdriverrubygemを使用しています。ブラウザ(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/
ページの読み込みが完了する前に、ブラウザが他のコマンドに応答しないようです。ブラウザにロード中のページを破棄して次のコマンドを実行させるにはどうすればよいですか?
更新しました
興味深い機能フラグloadAsynchttp://src.chromium.org/svn/trunk/src/chrome/test/webdriver/webdriver_capabilities_parser.ccを見つけました。この問題を解決するのに役立つかもしれません。chromedriverを起動するときにこれを設定するためのwatir(webdriver)の作り方がまだわかりません。このフラグはここで導入されましたhttp://codereview.chromium.org/7582005/