Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用Watir Webdriver下载文件_Ruby_Google Chrome_Download_Watir Webdriver - Fatal编程技术网

Ruby 使用Watir Webdriver下载文件

Ruby 使用Watir Webdriver下载文件,ruby,google-chrome,download,watir-webdriver,Ruby,Google Chrome,Download,Watir Webdriver,我想使用Watir Webdriver从页面下载一个文件。我需要能够将下载位置设置为我定义的目录。我找到了,但那里的代码不起作用: profile = Selenium::WebDriver::Chrome::Profile.new profile['download.prompt_for_download'] = false profile['download.default_directory'] = download_directory b = Watir::Browser.new :c

我想使用Watir Webdriver从页面下载一个文件。我需要能够将下载位置设置为我定义的目录。我找到了,但那里的代码不起作用:

profile = Selenium::WebDriver::Chrome::Profile.new
profile['download.prompt_for_download'] = false
profile['download.default_directory'] = download_directory

b = Watir::Browser.new :chrome, :profile => profile
(其中下载目录仅为我的桌面)提供:

Selenium::WebDriver::Error::UnknownError: unknown error: cannot parse capability: chromeOptions
from unknown error: unrecognized chrome option: profile
  (Driver info: chromedriver=2.19.346063 (38b35413bd4a486d436a9749e090454bc9ff6708),platform=Mac OS X 10.11.0 x86_64)
from /Users/myusername/.rvm/gems/ruby-1.9.3-p551/gems/selenium-webdriver-2.48.1/lib/selenium/webdriver/remote/response.rb:70:in `assert_ok'

我猜代码是为旧版本的Watir编写的。如何通过Watir设置Chrome的下载位置?

您的示例适用于wery old Chrome(webdriver 1)的new您必须输入以下代码:

prefs = {
    'download' => {
        'default_directory' => download_directory,
        'prompt_for_download' => false,
    },
    'profile' => {
        'default_content_settings' => {'multiple-automatic-downloads' => 1}, #for chrome version olde ~42
        'default_content_setting_values' => {'automatic_downloads' => 1}, #for chrome newe 46
    }
}

caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps['chromeOptions'] = {:prefs => prefs}

b = Watir::Browser.new :chrome, :desired_capabilities => caps
关于这个问题,你可以更多地引用我的旧版本

在我的基础上,我发现我可以使用这个更短/更简洁的版本:

preferences = { 
  :download => {
    :prompt_for_download => false,
    :directory_upgrade => true,
    :default_directory => "download_directory"
  }   
}   

browser = Watir::Browser.new :chrome, :prefs => preferences