本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
有朋友想要下载网页上的图片,一开始想的比较简单让他用uipath的活动take screenshot来截图再保存图片
对于图片在网页中完全展示的情况,uipath是可以正常截图并保存的;如果图片需要鼠标滑轮,滑到某一个位置图片才能完全展示或者说图片太长无法完全展示时,uipath 截图的结果就有问题,比如以下的情况
左侧是网页上的原始图片,右侧是uipath通过take screenshot截图的画面,可以清楚的看见右侧截图并不完整
下面介绍两种方法下载图片(下载文件同样适用)
方法一:Ctrl + S
对于网页上的资源文件,比如图片或者PDF再或者是别的什么什么,一定是挂载在服务器上并有自己的资源文件URL路径的,通过uipath的uiexplore查看属性,也是可以获取到这个资源文件URL路径的,接下来就以崩坏3官网作为下载图片的例子,介绍具体方法
演示链接:www.bh3.com/wallpapers
在uipath界面使用get attribute方法,页面元素选择网页上的某一张图片
通过ui explorer,可以发现该图片的资源URL路径在href属性下,使用get attribute活动可以获取该资源URL路径并保存在变量中
获取到图片路径后,可以通过open browser活动打开该图片文件,此时再使用send hotkey活动,调用键盘快捷键Ctrl+S保存网页文件
通过上面两步,就能达到保存图片的目的
注:对于某些网页上的资源文件,通过open browser活动打开时,会直接打开下载页面,那么就可以省去CTRL+S的快捷键
完整流程如下:
方法二:Http Request
使用Http Request保存文件需要首先引入UiPath.WebAPI.Activities活动包
步骤和第一种差不多,只是下载方式略有不同,仍旧需要先使用get attribute活动获取资源文件URL路径,该步不再赘述
获取到资源文件URL路径后,使用http request活动,属性中填入下载后的本地文件名和资源文件URL路径即可,相对来说简单一些
注:使用该方法下载文件时,下载路径一定是全路径(包括文件下载名及后缀),而且一定要确定目标文件格式以及保存路径是否合法