问题
在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问的到,这里总结一下
解决方案
使用类似这样的代码就可以完成:
driver.find_element .send_keys(“名字”,“文件”)(“。/小强测试品”牌. png)
1,下载并安装autoit,之后在开始菜单可以看到如下
autoit Windows信息用于识别Windows控件信息
编译脚本。exe用于将AutoIt生成exe执行文件
Run脚本用于执行AutoIt脚本
SciTE脚本编辑器用于编写AutoIt脚本
2,上传功能如下
3,识别元素,主要是上图中的文件名输入框和打开按钮,使用AutoIt Windows信息完成,记录结果如下:
文件名输入框的类为“编辑”,实例为" 1 "
打开按钮的类为“按钮”,实例为" 1 "
4,编写脚本,使用SciTE脚本编辑器,内容如下:
ControlFocus(“文件上传”,“”,“Edit1”)
WinWait(“[类:# 32770]”,“”,10)
ControlSetText(“文件上传”,“”,“Edit1”、“D: python_workspaceQiangSEAutopic小强测试品牌jpg”)
睡眠(2000)
ControlClick(“文件上传”,“”,“Button1”);
5,验证脚本
保证页面的上传对话框打开,然后运行脚本tools>
6,打开编译脚本。exe工具,将其生成为exe可执行文件
7, python脚本中调用
=self.driver。find_element(“类名”、“avatar-uploader-trigger”)
。find_element(“类名”、“ant-btn”) .click ()
os.system (“D: \ python_workspace \ QiangSEAuto \ upload.exe”)
time . sleep (20)
其他
其实还有其他的解决方法,感兴趣的自行研究吧,比如还可以利用如下的方式:
Python pywin32库,识别对话框句柄,进而操作
SendKeys库
keybd_event模拟按键