简介:自动化过程中遇到上传多张图片的情况,但使用selenium无法模拟windows窗口操作,所以尝试使用AutoIt解决,使用AutoIt每次上传一张图片很简单,这次我们是一次性上传多张图片
官网下载地址:https://www.autoitscript.com/site/autoit/downloads/
AutoIT中文使用手册:https://www.jb51.net/shouce/autoit/
AutoIt简单使用查看我的另一篇博客:https://blog.csdn.net/galen2016/article/details/55104927
新增一个后缀为.au3的文件,如:UpLoadRoomPic.au3。代码及解释如下:
ControlFocus("打开","","Edit1")
WinWait("[CLASS:#32770]","",100) ;等待0.1秒
ControlSetText("打开", "", "Edit1", "D:\AutoTestAttachment\roomPic") ;打开文件目录
Send("{ENTER}") ;敲回车
WinWait("[CLASS:#32770]","",100) ;等待0.1秒
ControlSetText("打开", "", "Edit1", '"a.png" "b.png" "c.png" "public.png" "restroom.png" "total.png"') ;输入多个文件名
ControlClick("打开", "","Button1");
注意1:本例是windows系统下用谷歌浏览器打开的文件上传窗口
注意2:ControlSetText(“打开”, “”, “Edit1”, ‘“a.png” “b.png” “c.png” “public.png” “restroom.png” “total.png”’) 这行代码的第4个参数就是我们的图片名称,每个图片名称用双引号括起来,再用空格隔开,最后用单引号全部括起来
首先把.au3文件转换成.exe文件,具体操作是:选中.au3文件-右键-点击“Compile Script”
用Java调用该exe文件:
//使用AutoIt3操作windows文件上传窗口,要提前把图片准备好
Runtime rn = Runtime.getRuntime();
try {
String exePath = "resource/UpLoadRoomPic.exe";
rn.exec(exePath);
} catch (Exception e) {
System.out.println("Error to run the exe");
}