小编use*_*395的帖子

设置默认下载目录和无头chrome

我有一个rails应用程序,正在运行capybara和selenium,并使用chrome进行端到端测试.我想在运行chrome headless时设置默认下载目录.

以下是我在support/env.rb中设置的方法:

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

Capybara.register_driver :headless_chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
  'chromeOptions' =>  {
    'args' => %w(headless disable-gpu window-size=1920,1080),
    'prefs' => {
      'download.default_directory' => DownloadHelpers::PATH.to_s
    }
  }
)
Capybara::Selenium::Driver.new app,
  browser: :chrome,
  #args: ["--window-size=1024,768"], #UNCOMMENT TO HAVE BROWSER WINDOW POP UP
  desired_capabilities: capabilities
end
Run Code Online (Sandbox Code Playgroud)

我注意到,如果我离开

'args' => %w(headless disable-gpu window-size=1920,1080)
Run Code Online (Sandbox Code Playgroud)

然后设置默认下载目录,但是,浏览器会自动弹出,我要禁用它.

当我有两个:

    'args' => %w(headless disable-gpu window-size=1920,1080),
'prefs' => {
  'download.default_directory' => DownloadHelpers::PATH.to_s
}
Run Code Online (Sandbox Code Playgroud)

它运行无头,但未设置默认下载路径.

我有以下版本:

水豚(2.14.2)

selenium-webdriver(3.6.0)

chromedriver-helper(1.1.0)

ruby selenium ruby-on-rails selenium-chromedriver

2
推荐指数
1
解决办法
2267
查看次数