1.AutoItLibrary实现web自动上传文件方法(安装 AutoItLibrary 库、pywin32 库、AutoIt v3)(已测可用)

 

AutoIt Windows Info 用于帮助我们识 Windows 控件信息。
Compile Script to.exe 用于将 AutoIt 生成 exe 执行文件。
Run Script 用于执行 AutoIt 脚本。
SciTE Script Editor 用于编写 AutoIt 脚本。

2.制作上传文件脚本

a、首先打开 AutoIt Windows Info 工具,鼠标点击 Finder Tool,鼠标将变成一个小风扇形状的图标,
按住鼠标左键拖动到需要识别的控件上。

 

 

 b、根据 AutoIt Windows Info 所识别到的控件信息打开 SciTE Script Editor 编辑器,编写脚本

;ControlFocus("title","text",controlID) Edit1=Edit instance 1
ControlFocus("打开", "","Edit1")
; Wait 10 seconds for the Upload window to appear
WinWait("[CLASS:#32770]","",10)
; Set the File name text on the Edit field
ControlSetText("打开", "", "Edit1", "C:\testfile\fm.jpg")
Sleep(2000)
; Click on the Open button
ControlClick("打开", "","Button1");

 

 

 ControlFocus()方法用于识别 Window 窗口。WinWait()设置 10 秒钟用于等待窗口的显示,其用法与
WebDriver 所提供的 implicitly_wait()类似。ControlSetText()用于向“文件名”输入框内输入本地文件的路
径。这里的 Sleep()方法与 Python 中 time 模块提供的 Sleep()方法用法一样,不过它是以毫秒为单位,
Sleep(2000)表示固定休眠 2000 毫秒。ControlClick()用于点击上传窗口中的“打开”按钮。
AutoIt 的脚本已经写好了,可以通过菜单栏“Tools”-->“Go” (或按键盘 F5)来运行一个脚本吧!
注意在运行时上传窗口当前处于打开状态。
    c、脚本运行正常,将其保存为 upfile.au3,这里保存的脚本可以通过 Run Script 工具将其打开运行,
但我们的目的是希望这个脚本被 Python 程序调用,那么就需要将其生成 exe 程序。打开 Compile Script to.exe工具,将其生成为 exe 可执行文件。

 

 点击“Browse”选择 upfile.au3 文件,点击“Convert”按钮将其生成为 upfile.exe 程序。

rf上的使用

 

 

 

2.send(简单粗暴,要注意路径的写法以及本地输入法的设置)(已测ok)

 输入文件路径后可以直接再用send 空格确认

 send     {ENTER}  

 

 

3.附上网上别人封装的(还没试)

利用上面提到的AutoItLibrary关键字,将上传附件功能封装成关键字LoadFile($fileName | $title),其中fileName是上传文件的路径,title是上传文件win对话框的窗口标题,一般为“打开”。文件上传的基本步骤是:在web页面单击上传按钮;然后win wait直到上传文件win对话框成功弹出;再利用win activate激活该窗口;并在文件输入框内输入fileName;最后单击按钮,成功完成文件上传功能。

    在RobotFramework里面的封装如下图所示。