使用AutoIt处理网页中的上传
上一篇 /
下一篇 2017-04-25 13:28:03
/ 个人分类:AutoIt
selenium并不能处理所有的上传方式,如下面这种,需要借助第三方工具。
AutoIt使用方法:
1.首先使用
获取控件信息。
拖动Finder Tool到相应控件即可。
2.写脚本
3.使用AutoIt自带的“Compile Script. to .exe”生成exe
4.在自动化程序中调用
python脚本:
os.system("d://path") #这里需要使用绝对路径
AutoIt脚本:
#include <file.au3>
#include <array.au3>
dim $Var,$szDrive, $szDir, $szFName, $szExt
Local $path
$Var = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
$path=$szDriver & $szDir
WinWait("打开","",4);
WinActivate("打开");
ControlFocus("打开","","[CLASS:ToolbarWindow32;INSTANCE:2]");
ControlClick("打开","","[CLASS:ToolbarWindow32;INSTANCE:2]","left",1,577,421);
Send($path & "{ENTER}" & "{ENTER}");
sleep(500);
ControlFocus("打开","","[CLASS:Edit;INSTANCE:1]");
ControlSetText("打开","","Edit1","通知.docx");
sleep(500);
ControlClick("打开","","Button1");
注:资源管理器地址栏处直接使用ControlSetText会失败,这里才用了焦点->点击->传入键盘事件处理。使用两次enter是由于输入法的问题。
本脚本所用函数说明:
- _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
等待窗口打开。第一个参数为窗口title,第二个参数为文本(一般空就可以),第三个参数为等待时间。
- ControlFocus("打开","","[CLASS:ToolbarWindow32;INSTANCE:2]")
设置焦点。第一个参数为窗口title,第二个参数为文本(一般不用填),第三参数为控件的信息(在AutoIt Window Info中control下的Advanced Mode里可以找到)。
- ControlClick("打开","","[CLASS:ToolbarWindow32;INSTANCE:2]","left",1,577,421)
鼠标操作。前三个参数同上,第四个参数为鼠标点击方式(可以为rignt、left等),第五个参数为点击次数,后两个参数为坐标。后四个参数可以不填写,默认为鼠标左键单击。
- Send($path & "{ENTER}" & "{ENTER}");
- ControlSetText("打开","","Edit1","通知.docx")
向控件传入文本。前三个参数同ControlFocus,第四个参数为要写入的文本。
收藏
举报
TAG:
autoit
Autoit
AutoIT
autoIT
AutoIt