一、前言
在使用python+webdriver做web自动化时,遇到上传本地文件时,无法通过webdriver进行处理。这是需要借助于第三方工具来解决此问题。下面就将介绍这个工具(AutoIt)的使用方法。
二、AutoIt的使用
2.1、AutoIt的下载与安装
下载地址:https://www.autoitscript.com/site
下载后,直接点击exe文件进行安装,这里我就不鸡婆了。
2.2、AutoIt的使用
安装后,在电脑所有程序中会与AutoIt v3文件夹,点开,里面会有AutoIt Window Info(x64)、Compile Script to .exe(x64)、SciTE Script Editor三个启动程序程序(win7,win10点击开始—所有程序;win8自己去程序中一个个搜索吧),如果没有,自己重装吧。
2.2.1、AutoIt Window Info(x64)
点击自动这个程序
这个工具是获取上传窗口的一些信息,使用方式就是将Finder tool直接拖到需要捕获的控件上
获取文本框信息
获取打开按钮信息
2.2.2、SciTE Script Editor
打开工具,输入上面获取到的控件信息,保存成upfile.au3;
;ControlFocus("title", "text", controlID) Edit1=Edit instance 1
ControlFocus("文件上传", "","Edit1");Wait 10 seconds for the Upload window to appearWinWait("[CLASS:#32770]", "",10);Set the File name thext on the Edit fieldControlSetText("文件上传", "", "Edit1", "E:\Python\20170109(pyton+selenium)\test.png")Sleep(2000);Click on the Open buttonControlClick("文件上传", "", "Button1");
2.2.3、Compile Script to .exe(x64)
使用此工具,将上面的upfile.au3转成可执行的exe文件
到此时,你已搞定本地上传问题了,接下来只需要在脚本中调用此exe可执行文件即可
python脚本调用示例如下:
os.system("E:\Python\upfile.exe")