au3 ui html,使用 AutoIt 实现 UI 自动化上传附件

2、找到安装后的文件路径,打开 autoit 窗口信息工具

3、点击要上传图片的按钮,打开文件选择框,注意,一定要打开 windows 的文件选择框

4、将控件探测工具分别拖至选择图片窗口的文件名输入框以及打开按钮处,记录需要的类等信息

1ce64a5077d67dd14e412a618dbfdd6a.png

80b54abc16e83d71b8378d1e4de2e653.png

5、打开 autoit 的 sci te 编辑脚本,输入;另存为 au3 文件

WinActivate("打开");

;ControlFocus("title","text",controlID) Edit1=Edit instance 1

ControlFocus("打开", "","Edit1")

; Wait 10 seconds for the Upload window to appear

WinWait("打开","[CLASS:#32770]",10)

; Set the File name text on the Edit field

ControlSetText("打开", "", "Edit1", "C:\Users\Administrator\Desktop\1.jpg")

Sleep(2000)

; Click on the Open button

ControlClick("打开", "","Button1");

参数化的写法:

WinWaitActive($CmdLine[1])

WinActive($CmdLine[1])

ControlSetText($CmdLine[1],"","[CLASS:Edit;INSTANCE:1]",$CmdLine[2])

ControlClick($CmdLine[1],"","[CLASS:Button;INSTANCE:1]")

Send("! o")

附注:

ControlFocus ( "title", "窗口文本", controlID) 设置输入焦点到指定窗口的某个控件上;

WinWait ( "title 题" , "窗口文本" , 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;

ControlSetText ( "title", "窗口文本", controlID, "新文本" ) 修改指定控件的文本;

Sleep ( 延迟 ) 使脚本暂停指定时间段;

ControlClick ( "title", "窗口文本", 控件 ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;

其中,title 即 AutoIt Window Info 识别出的 Title 字段,controlID 即 AutoIt Window Info 识别出的 Class 和 Instance 的拼接,如上图拼接后的结果应为:Button1;

6、验证脚本是否正确,点击页面的上传图片按钮,打开上传图片对话框;切换到 sci te 编辑脚本窗口,点击工具菜单 ---- 执行脚本,注意观察下面的日志,执行完毕后查看页面是否已经上传好图片

3df664726f6091d8cf5485af0bfc4ee1.png

7、打开 auit 编译脚本工具,打开上一步保存的 au3 文件,转换成 exe 文件

336e80fc8e2d373f6f56f52f843aee59.png

8、selenium 中调用 exe 程序

Runtime r = Runtime.getRuntime();

//因为工程文件放在了 C 盘下,直接访问 res 文件夹下的 exe 文件会拒绝访问,暂时改成电脑 E 盘下的可执行文件调用

String scriptFile = "E:/test.exe";

@SuppressWarnings("unused")

Process pro = null;

try {

pro = r.exec(scriptFile);

browserEmulator.pause(15000);

} catch (IOException e) {

e.printStackTrace();

}

参数化写法的调用:

Runtime r = Runtime.getRuntime();

String scriptFile = "./res/AutoItScript/upload.exe";

@SuppressWarnings("unused")

Process pro = null;

try {

pro = r.exec(scriptFile+" "+windowsTitle+" "+fileNameWithPath);

logger.info("upload file:" + fileNameWithPath);;

} catch (IOException e) {

e.printStackTrace();

logger.error("Run uploadfile.exe fail");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值