Java中使用selenium调用chrome浏览器下载图片错误的解决办法

应用场景
有个项目需要将网页上面的图表放生成的word报告中,页面上面的图表是用Echarts做的,因为要求word报告中的图表和页面上的图表保持一致,所以将页面上面的图表截图保存到数据库中,然后从数据库中查询到图片放到word报告中。为了实现自动截图保存,项目采用selenium打开chrome浏览器,访问页面后通过js截图,然后下载到文件夹中,程序运行了很长一段时间都没有问题,最近chrome浏览器自动更新到了75.0.3770版,突然发现页面截图后下载失败了,浏览器提示“下载失败”。

系统环境
服务器:windows server 2008 64位
JDK:1.8.0_161
浏览器:chrome 75.0.3770
selenium-java:3.141.59
chromedriver:75.0.3770.90

问题原因
在保存下载的图片的时候,设置了文件的保持路径,设置如下:

chromePrefs.put("download.default_directory", "E:/picture");

正是这个路径设置出现了问题,windows下必须是“\”而不是“/”,早期的chrome版本中这个路径设置后并未起作用,下载的时候使用的是chrome默认的下载路径,在最新的chrome版本中这个设置突然起作用了,因为路径错了,导致图片下载失败,正确配置如下:

chromePrefs.put("download.default_directory", "E:\\picture");

拓展知识:斜杆与反斜杆的区别
正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。
Unix使用斜杆/ 作为路径分隔符,web应用最开始跑在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。
Windows由于使用 斜杆/ 作为DOS命令提示符的参数标志了,为了不混淆,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值