chromedriver не использует download.defaultDirectory - PullRequest
2 голосов
/ 09 марта 2020

Использование ruby, селен, капибара, огурец; Установка локального драйвера в env.rb следующим образом:

args = %w[--ignore-certificate-errors --window-size=1360,998]
prefs = {
      download: {
          default_directory: "#{Directories::DATA}/downloads",
          directory_upgrade: true,
          prompt_for_download: false
      }}
opts = Selenium::WebDriver::Chrome::Options.new(args: args, prefs: prefs)

Capybara.register_driver :selenium_chrome do |app|
  Capybara::Selenium::Driver.new(app, browser: :remote,
                                 url: "http://localhost:9515",
                                 options: opts)
end

chromedriver.log говорит, что в настройки был добавлен правильный абсолютный путь, но тест по-прежнему загружает в папку загрузок по умолчанию, а не в папку, указанную в chromeOptions

[1583876862.576][INFO]: [3d5e8df8f53846b738e383ad9e7642d8] COMMAND InitSession {    "capabilities": {
      "firstMatch": [ {
         "goog:chromeOptions": {
            "args": [ "--ignore-certificate-errors", "--window-size=1360,998" ],
            "prefs": {
               "download": {
                  "defaultDirectory": "/Users/username/correct/path/data/downloads",
                  "directoryUpgrade": true,
                  "promptForDownload": false
               }
            }
         }
      } ]    },    "desiredCapabilities": {
      "browserName": "",
      "cssSelectorsEnabled": false,
      "javascriptEnabled": false,
      "nativeEvents": false,
      "platform": "ANY",
      "rotatable": false,
      "takesScreenshot": false,
      "version": ""    } } [1583876862.579][INFO]: Populating Preferences file: {    "alternate_error_pages": {
      "enabled": false    },    "autofill": {
      "enabled": false    },    "browser": {
      "check_default_browser": false    },    "distribution": {
      "import_bookmarks": false,
      "import_history": false,
      "import_search_engine": false,
      "make_chrome_default_for_user": false,
      "skip_first_run_ui": true    },    "dns_prefetching": {
      "enabled": false    },    
      "download": {
      "defaultDirectory": "/Users/username/correct/path/data/downloads",
      "directoryUpgrade": true,
      "promptForDownload": false    },    "profile": {
      "content_settings": {
         "pattern_pairs": {
            "https://*,*": {
               "media-stream": {
                  "audio": "Default",
                  "video": "Default"
               ...

1 Ответ

2 голосов
/ 11 марта 2020

Последние версии chromedriver требуют настройки по-другому. Самое простое решение - просто установить все 3 способа, как Capybara в своих Chrome тестах - https://github.com/teamcapybara/capybara/blob/44621209496fe4dd352709799a0061a80d97d562/spec/selenium_spec_chrome.rb#L13

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...