我尝试从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
ChromeDrive路径
/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
Python3.6.4
selenium 3.141.0
chrome驱动2.45
chrome浏览器71
尝试使用双斜杠作为路径名:
C:\d\s\b
还可以尝试在web驱动程序的init上设置驱动程序页面下载选项。
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)
尝试使用add_argument
设置下载目录
options = Options()
options.add_argument("download.default_directory=C:/s/d/b")
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=options)
此错误消息…
Failed-Path Too Long
…表示ChromeDriver无法与(最近)下载的文件交互。
根据讨论错误错误-“路径太长”…错误应该是“文件已打开”,当WebDriver实例(即驱动程序尝试过早使用下载的文件)时会观察到此问题。
错误快照:
在twp步骤之间诱导一些等待: