Selenium+Java(09):使用AutoIT工具实现自动化文件上传

在使用Selenium时可能会遇见“需要使用弹出窗口上传文件,但SendKeys等方式都不好使”的情况,那么这时候我们可以使用这款方便快捷的免费自动化工具 AutoIT 来实现。

原理:
1. 使用AutoIT的Windows自动化功能编写上传文件的脚本,并编译为.exe可执行文件
2. 需要上传文件时,在Selenium中调用该文件即可。

实现:
1. 下载&安装AutoIT
下载地址: https://www.autoitscript.com/site/autoit/downloads/
安装过程熟悉计算机的盆友打开网页扫一眼就明白啦。
不太了解的话,具体的下载安装流程可以参考前一篇博客:https://blog.csdn.net/qq_36396763/article/details/90741556
2. 启动脚本编辑器&元素定位器。
安装好的工具简介如下:
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第1张图片
我们打开元素定位器以及脚本编辑器。打开后如图:
脚本编辑器:
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第2张图片
元素定位器:
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第3张图片
3. 捕获元素信息
打开文件上传窗口,并且将元素定位器的靶形按钮拖拽到文件上传弹窗中,可捕获对应的Title和Class等信息。
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第4张图片
同理我们可以获取“打开”按钮的元素信息,留存以备用。
4. 编辑脚本
需要在脚本编辑器中进行编辑。
编写规则如下(以下所有的元素信息都可以使用元素定位器取得):

ControlFocus("Title","","文件名输入框的Class+Instance")
ControlSetText("Title","","文件名输入框的Class+Instance","文件存放的路径")
ControlClick("Title","","‘打开’按钮的Class+Instance")

那么我如果要上传E盘跟目录中的test.jpg图片,就可以在脚本编辑器中编写如下脚本:

ControlFocus("文件上传","","Edit1")
ControlSetText("文件上传","","Edit1","E:\test.jpg")
ControlClick("文件上传","","Button1")

5.编译为可执行文件
首先将上面编写好的脚本保存,例如我将其保存在了E盘根目录下,命名为“FileUp.au3”。
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第5张图片
然后点击脚本编辑器上方的“Tool-Compile”,
我们就会发现在FileUp.au3脚本保存的路径下生成了一个FileUp.exe文件。
在这里插入图片描述
这个就是可以使用的文件上传脚本啦。
6. 在Selenium中调用.exe文件
现在就到最后一步了,我们需要在Selenium中调用该文件以实现图片文件的上传:
使用如下三行代码即可:

Runtime exe = Runtime.getRuntime();
	    String str = "E://FileUp.exe";
        exe.exec(str);

我这里是可以调用成功的,结果如下:
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第6张图片

如果报了这个错误:
Selenium+Java(09):使用AutoIT工具实现自动化文件上传_第7张图片
请检查是不是你的代码写错了,比如将ControlSetText写成ControlSetTest,就会报此错误。

流程还需多实践,返璞归真是躬亲。实践一下吧~

软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
愿与同在CSDN的你共同进步。

你可能感兴趣的:(Selenium+Java(09):使用AutoIT工具实现自动化文件上传)