Ошибка Failed-Path Too Long после загрузки CSV-файла с помощью ChromeDriver и браузера Chrome, запущенного Selenium через Cygwin в Python - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь загрузить CSV-файл из браузера Chrome, запущенного selenium.

Но

Failed- Path too long error

происходит при загрузке CSV-файла.

путь:

C:/s/d/b

Я изменяю путь, как показано ниже, но та же ошибка ...

/cygdrive/c/s/d/a
\cygdrive\c\s\d\a
\\cygdrive\\c\\s\\d\\a

CSV-файл

20181213171306.csv

путь к chromedriver

/cygdrive/c/Users/HOGEHOGE/chromedriver_2.45.exe

Используя cygwin, выполняйте сценарии Python, как показано ниже.

python3 C:/s/d/a.py

Я установил опцию веб-драйвера следующим образом.

DIR_DL="C:/s/d/b"
options = Options()
options.add_experimental_option("prefs", {
  "download.default_directory":DIR_DL,
})
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,chrome_options=options)
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': DIR_DL}}
command_result = driver.execute("send_command", params)

Кто-нибудь знает, как это исправить?

enter image description here

enter image description here

"失敗 - パ ス が 長す ぎ ま す "японский.Это означает «Ошибка: ошибка слишком длинного пути».

[Среда] Windows 10CYGWIN_NT-10.0 2.11.2Python 3.6.4селен 3.141.0Chrome Driver 2,45браузер chrome 71

Ответы [ 4 ]

0 голосов
/ 17 декабря 2018

Я изменил путь загрузки CSV на путь cygwin-to-dom, затем мне удалось загрузить CSV-файл.

CSV-путь загрузки

/cygdrive/c/Users/CSV_DOWNLOAD_PATH

C:/Users/CSV_DOWNLOAD_PATH

Большое спасибо за ваши ответы.

0 голосов
/ 13 декабря 2018

попробуйте установить каталог загрузки с помощью add_argument

options = Options()
options.add_argument("download.default_directory=C:/s/d/b")
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=options)
0 голосов
/ 13 декабря 2018

Это сообщение об ошибке ...

Failed-Path Too Long

... означает, что ChromeDriver не удалось взаимодействовать с (недавно) загруженным файлом.


Согласно обсуждению Неправильная ошибка - «Слишком длинный путь» ... Ошибка должна быть «Файл уже открыт» Эта проблема наблюдается, когда экземпляр WebDriver т. е. драйвер пытается использовать загруженный файл слишком рано.

Снимок ошибки:

Failed-Path Too Long


Решение

Вызвать некоторое wait между шагами twp:

  • Загрузка файла CSV.
  • Использование файла CSV для следующего действия.
0 голосов
/ 13 декабря 2018

Попробуйте использовать двойную косую черту для имени пути:

C: \ d \ s \ b

Попробуйте также настроить параметр загрузки страницы драйвера при инициализации webdriver.

driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "/path/to/download/dir"}}
command_result = driver.execute("send_command", params)
...