python +硒+ autoit实现文件上传

问题

在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问的到,这里总结一下

解决方案

皃ython

使用类似这样的代码就可以完成:

driver.find_element .send_keys(“名字”,“文件”)(“。/小强测试品”牌. png)

1,下载并安装autoit,之后在开始菜单可以看到如下

皃ython

autoit Windows信息用于识别Windows控件信息

编译脚本。exe用于将AutoIt生成exe执行文件

Run脚本用于执行AutoIt脚本

SciTE脚本编辑器用于编写AutoIt脚本

2,上传功能如下

皃ython

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可执行文件

皃ython

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模拟按键


python +硒+ autoit实现文件上传