2015-10-19 2 views
1

Я хочу загрузить файл со страницы с помощью Watir Webdriver. Мне нужно установить местоположение загрузки в каталог, который я определяю. Я нашел this page, но код там не работает:Загрузка файлов с 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 

(где download_directory только мой рабочий стол) дает следующее:

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. Как установить местоположение загрузки Chrome через Watir?

ответ

4

ваш пример работал WERY старого хрома (WebDriver 1) для нового вы должны этот код:

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 

больше вы можете камыш в мой старый answer по этому вопросу

2

Строительство на Stephan's answer, Я обнаружил, что могу использовать эту более короткую/чистую версию:

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

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