python+AutoIT实现UI自动化上传图片

1、前言

需求:UI自动化上传本地图片

AutoIT官网:https://www.autoitscript.com/site/autoit/,下载进行安装(ps:跟其他软件一样点击下一步执行安装即可)

安装完成如下图,有这几个图标:

 

 

2、识别控件

 

在本机电脑查找打开此图标,步骤如下:

1)识别文件框,长按拖拽Finder Tool图标进行识别,具体如下图:

可在【Window】tab查看Title和Class,在【Control】tab查看ClassnameNN(ps:后续编写脚本需要用到)

 

2、识别打开按钮

可在【Window】tab查看Title,在【Control】tab查看ClassnameNN(ps:后续编写脚本需要用到)

 

 

 3、编写脚本

在本机电脑查找打开此图标,用来编写脚本

 

 

 编写脚本,格式如下:

#聚焦打开窗口
ControlFocus ( "打开", "", "Edit1")  
#暂停脚本直至指定窗口出现
WinWait("[CLASS:#32770]","",10)
#填充图片地址
ControlSetText("打开","","Edit1","C:\Users\nmt\Desktop\timg.jpg")
#延时
Sleep(2000)
#点击打开按钮
ControlClick("打开","","Button1")

 语法格式注释:

WinActivate("title")                             #聚焦到指定活动窗口
ControlFocus ( "title", "窗口文本", controlID)            #设置输入焦点到指定窗口的某个控件上;
WinWait ( "title" , "窗口文本" , 超时时间 )              #暂停脚本的执行直至指定窗口存在(出现)为止;
ControlSetText ( "title", "窗口文本", controlID, "新文本" )     #修改指定控件的文本;
Sleep ( 延迟 )   #使脚本暂停指定时间,单位是毫秒;
ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 )   #向指定控件发送鼠标点击命令;

编写完成后按F5运行脚本,如没报错可看到成功上传图片(用此来验证脚本是否有错误):

注意!!!前提上传照片的窗口已经打开

3)将本地图片地址设置动态参数,在python调用时进行传入,方便后续更改图片,修改脚本为:

#聚焦打开窗口
ControlFocus ( "打开", "", "Edit1")
#暂停脚本直至指定窗口出现
WinWait("[CLASS:#32770]","",10)
#填充图片地址,$CmdLine[1]代表exe执行时的动态参数
ControlSetText("打开","","Edit1",$CmdLine[1])
#延时
Sleep(2000)
#点击打开按钮
ControlClick("打开","","Button1")

 

4、编译exe文件

 在本机电脑打开此图标,将脚本编译成exe文件

 

 选择路径,点击convert完成编译,如下图:

 

 5、python调用

import os
image_path = r'C:\Users\nmt\Desktop\timg.jpg'   #本地图片路径
os.system(r'C:\Users\nmt\Desktop\upload_img.exe {}'.format(image_path))    #cmd调用exe文件

至此,成功实现UI自动化上传本地图片

 

posted @ 2021-06-09 14:23  spellbound  阅读(779)  评论(0编辑  收藏  举报