ヘッドレスLinuxホストでリモートWebドライバーテストを実行すると、ダウンロードダイアログがクロムで表示される理由をデバッグしようとしています。Chromeのバージョンは45だと思います。
環境の詳細のカップル
- セレン 2.53 (gem)
- Selenium 2.53 サーバー Jar
- Chrome ドライバー 2.21
フレームワーク/テストは、Web テストを駆動するために Capybara を利用して Ruby で記述されています。以下は、リモート ドライバーがどのように初期化されるかの簡単な抜粋です。
prefernces = {
:download => {
:prompt_for_download => false,
:default_directory => '/home/john.doe/Downloads/'
}
}
caps = Selenium::WebDriver::Remote::Capabilities.chrome()
caps['chromeOptions'] = {'prefs' => prefernces}
http_client = Selenium::WebDriver::Remote::Http::Default.new
http_client.timeout = 240
options = {
browser: :remote,
url: "http://<server_url>:4444/wd/hub",
desired_capabilities: caps,
http_client: http_client
}
# Returns Remote Driver
Capybara::Selenium::Driver.new(app, options)
chromeOptions が設定されていることをハブ経由で確認しましたが、ファイルがダウンロードされると、ファイル ダイアログ プロンプトが表示されます。
この問題の解決策を探してろうそくを燃やしました。助けてくれてありがとう!