使用AutoIt处理网页中的上传

上一篇 / 下一篇  2017-04-25 13:28:03 / 个人分类:AutoIt

使用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)
用于获取文件地址。
  • WinWait("打开","",4)
等待窗口打开。第一个参数为窗口title,第二个参数为文本(一般空就可以),第三个参数为等待时间。
  • WinActivate("打开")
激活窗口。参数为窗口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

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-04-22  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 2454
  • 日志数: 6
  • 建立时间: 2017-03-17
  • 更新时间: 2017-08-01

RSS订阅

Open Toolbar