影刀RPA | Win端没有"上传文件"指令? 多少有点离谱了刀刀

背景说明

过去开发的RPA应用多是基于网页端的,在一些“上传文件”的场景,直接使用官方的“上传文件”指令就OK,当时也觉得是个挺基础的指令,桌面端指定也有!

直到后来开发一个桌面自动化应用时,需要用到这个“上传文件(Win)”指令,在影刀的指令库一顿翻箱倒柜,试图找到这个指令,"搜索+分组逐一查看",都没有,不死心,又去社区里搜索相关帖子,

最终确认:桌面端目前真的没有"上传文件"指令,这个看似基础的功能只在网页自动化中提供!

啊不是🥲,连"上传文件"都要用户自己造轮子吗刀刀!?

吐槽归吐槽,抱怨不如行动。

本文将基于此背景,分享2个解决方案,供铁铁们应用参考。

方案01:剪切板路径粘贴法

这个简单,想想正常我们是怎么上传文件的?

点击Win元素,等待文件对话框出现,在地址栏输入文件路径,点"确定/打开",好,那我们就让RPA也这样做~

1. 技术原理

将文件路径置于剪切板,利用Windows剪贴板在文件选择对话框中Ctrl+V粘贴键入文件路径,并按Enter回车。

2. 实现步骤

1. 将目标文件路径存入变量filePath

2. 执行"设置剪贴板文本"指令,参数为 filePath

3. 点击目标应用的"打开/上传" Win元素,触发文件对话框

4. 等待文件对话框出现(根据实际情况自主添加,可设置合理等待时间)

5. 键盘输入:"Ctrl+V"+"Enter" 

方案2:手搓“上传文件(Win)”

既然没有现成的指令,那我们能不能自己DIY一个呢,写一个流程,然后封装成"上传文件(Win)"的自定义指令,这样,后面无论哪个桌面自动化应用需要使用,拖拽一条指令就能实现~

1. 技术原理

使用pywinauto进行GUI自动化,并结合剪贴板和键盘模拟,实现文件选择对话框的自动操作。并且需要考虑多种异常情况和不同的对话框标题,以及对变量输入、文件路径等的支持。

2. 实现步骤(直接看图吧)

新建一个桌面自动化应用,进行如下图中的搭建和参数设置,搞好了退出应用,执行"发版",就可以在其他应用中调用该自定义指令。

1. 流程参数配置(主流程下新建)

2. 主流程完整指令截图(放大看)

3. 代码

01-Python模块管理:安装下面两个包

02-Python代码

平台提示内容过长,可到同名平台获取

第二个方案是我实测3款软件可以正常运行的,不一定适配所有桌面软件(感觉迟早会翻车hhh~

以上不懂的可以滑到底面联系我,最后,@影刀官方,咱是不是该考虑把这个功能加上了啊?像"上传文件"这样基础的指令居然需要用户大费周章去实现,太抓马了~🤣🤣

铁铁们,你们有没有遇到过类似的问题呢?欢迎在评论区分享你的血泪史和解决方案,我们下期再见!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容