我尝试从selenium启动的Chrome浏览器中下载csv文件。
但是
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
我在下面设置了Web驱动程序选项。
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)
有人知道如何解决这个问题吗?
“失败-パスが长すぎます”是日语。表示“失败-路径太长错误”。
[环境]
Windows 10
CYGWIN_NT-10.0 2.11.2
Python 3.6.4
硒3.141.0
chrome驱动程序2.45
chrome浏览器71
答案 0 :(得分:0)
尝试使用双斜杠作为路径名:
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)
答案 1 :(得分:0)
尝试使用add_argument
设置下载目录
options = Options()
options.add_argument("download.default_directory=C:/s/d/b")
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=options)
答案 2 :(得分:0)
此错误消息...
Failed-Path Too Long
...表示 ChromeDriver 无法与(最近)下载的文件进行交互。
根据讨论Wrong error - "Path Too Long" ... Error should be "File Already Open",当 WebDriver 实例(即驱动程序尝试过早使用下载的文件)时,会观察到此问题。
错误快照:
在以下twp步骤之间引起一些 wait :
答案 3 :(得分:0)
我将cygwin的CSV下载路径更改为dom的路径,然后成功下载了csv文件。
CSV下载的路径
/cygdrive/c/Users/CSV_DOWNLOAD_PATH
↓
C:/Users/CSV_DOWNLOAD_PATH
非常感谢您的答复。