RSelenium+RTools42报错:无法打开连接,文件或目录不存在
RSelenium+Firefox下载Zip文件路径不存在问题排查
问题详情
使用RSelenium搭配Firefox与网站交互时,同一临时文件夹可生成其他临时文件,但始终出现Zip文件路径/目录不存在的错误。已尝试重装RTools42并添加至PATH环境变量,参考相关讨论后仍未解决。
同事可正常运行的代码
firefoxProfile <- makeFirefoxProfile(list(browser.helperApps.neverAsk.saveToDisk = "application/comma-seperated-values, text/csv, text/plain, application/zip, application/octet-stream"))
报错信息
Error in file(tmpfile, "rb") : cannot open the connection In addition: Warning message: In file(tmpfile, "rb") : cannot open file 'C:\Users\user\AppData\Local\Temp\file\filename.zip': No such file or directory
排查与解决建议
- 修正MIME类型拼写错误:代码中
application/comma-seperated-values存在拼写错误,正确应为application/comma-separated-values(separated少写了一个字母a),这个错误可能导致Firefox的下载规则匹配异常,修正后重新测试。 - 检查临时目录状态:手动访问报错中的
C:\Users\user\AppData\Local\Temp\file\路径,确认该子目录是否存在,当前用户是否拥有读写权限。若目录不存在,手动创建后重试。 - 明确指定Firefox下载目录:在配置Firefox profile时,添加下载目录相关参数,强制指定到目标临时路径,示例代码如下:
firefoxProfile <- makeFirefoxProfile(list( browser.helperApps.neverAsk.saveToDisk = "application/comma-separated-values, text/csv, text/plain, application/zip, application/octet-stream", browser.download.dir = "C:\\Users\\user\\AppData\\Local\\Temp\\file", browser.download.folderList = 2, # 自定义下载目录 browser.download.manager.showWhenStarting = FALSE # 隐藏下载提示 )) - 验证组件版本兼容性:确认geckodriver版本与当前Firefox版本匹配,同时更新RSelenium包至最新版本,避免版本不兼容导致的文件写入异常。
- 排查安全软件拦截:部分杀毒软件或防火墙可能会拦截临时目录的文件写入操作,可临时关闭安全软件后测试是否能正常生成Zip文件。
内容的提问来源于stack exchange,提问作者Orthomyxovirus
相关产品推荐
相关产品推荐

