在UI自动化过程中,总会遇到文件上传的操作,一般的,标签为input,可以直接使用sendkeys
![](https://i-blog.csdnimg.cn/blog_migrate/fddb353532c6656e60678b5d2e62c38b.png)
如果他仅仅是一个button,那则无法直接sendkeys,则需要用到autoIT这个工具
基于Autolt实现上传
1、下载并安装Autolt。官方网站:
https://www.autoitscript.com/site/
2、安装成功后打开AutoIt Windows Info工具。鼠标点击Finder Tool变成扇叶指针,按住鼠标左键拖动到待识别的控件(文件名),获取控件信息。获得的文件名信息,其中Basic Window info中Title为“打开”,Class是“#32770”;Basic Control info中Class是“Edti”,instance是“1”
![](https://i-blog.csdnimg.cn/blog_migrate/24a44334eb8a6fc2ea007384562d43e0.png)
3、获取打开按钮的控件信息,方法同步骤2,记录获取到的信息
![](https://i-blog.csdnimg.cn/blog_migrate/2fb5b20d942c1c8a5fb81154e07988a8.png)
4、打开SciTE Script Editor编辑器,根据获取到的控件信息,编写脚本
![](https://i-blog.csdnimg.cn/blog_migrate/d47c5c40b172561909ca41cafe55256c.png)
WinWait()设置5秒用于等待上传窗口的显示
ControlFocus()把输入焦点定位到上传文本框中
ControlSetText()输入文件路径
sleep 等待上传时间,单位毫秒
ControllClick()点击打开按钮,开始上传
5、脚本编写完成后,可通过Tools-->GO运行脚本,运行正常,将其保存为.au3格式
6、打开Compile Script to.ext工具,将步骤5中生成的文件转换为exe可执行文件。
![](https://i-blog.csdnimg.cn/blog_migrate/f88df9043e16587ae414c1571cbcda40.png)
7、通过自动化测试脚本调用up.exe文件
#打开上传窗口
driver.find_element_by_xpath("//*[@id='filePicker']").click()
#调用up.exe文件
os.system("C:\Users\guorf\Desktop\up.exe")