0

ヘッドレスLinuxホストでリモートWebドライバーテストを実行すると、ダウンロードダイアログがクロムで表示される理由をデバッグしようとしています。Chromeのバージョンは45だと思います。

環境の詳細のカップル

  1. セレン 2.53 (gem)
  2. Selenium 2.53 サーバー Jar
  3. 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 が設定されていることをハブ経由で確認しましたが、ファイルがダウンロードされると、ファイル ダイアログ プロンプトが表示されます。

この問題の解決策を探してろうそくを燃やしました。助けてくれてありがとう!

4

2 に答える 2

3

/ を default_directory の末尾から削除し、さらに directory_upgrade: true を設定してみてください。それ以外は、ブラウザが選択したディレクトリへの書き込み権限を持っていることを確認してください(設定の正しいスペルにも注意してください)

 preferences = {
      :download => {
        :default_directory => '/home/john.doe/Downloads',
        :directory_upgrade => true,
        :prompt_for_download => false, 

      }
    }
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
  'chromeOptions' => {'prefs' => preferences}
)
于 2016-04-27T23:44:43.060 に答える
1

Capybara / Selenium / Chrome でファイルをダウンロードする例を次に示します。

require 'capybara'
require 'selenium-webdriver'

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app,
    :url => "http://localhost:4444/wd/hub",
    :browser => :chrome,
    :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(
      'chromeOptions' => {
        'prefs' => {
          'download.default_directory' => File.expand_path("C:\\Download"),
          'download.directory_upgrade' => true,
          'download.prompt_for_download' => false,
          'plugins.plugins_disabled' => ["Chrome PDF Viewer"]
        }
      }
    )
  )
end

session = Capybara::Session.new(:chrome)
session.visit "https://www.mozilla.org/en-US/foundation/documents"
session.click_link "IRS Form 872-C"

sleep 20
于 2016-04-28T00:15:53.417 に答える