AutoIt v3是一种免费的类似BASIC的脚本语言,用于自动化Windows GUI和通用脚本。它使用模拟击键,鼠标移动和窗口/控制操作的组合,以便以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。

安装AutoIT

访问这个网址:https://www.autoitscript.com/site/autoit/downloads/
下载并安装两个文件:SciTE4AutoIt3.exe,autoit-v3-setup.exe
AutoIT+Selenium的使用

介绍

AutoIt Window Info:元素识别器,是一个类似selenium IDE的工具,元素识别器找到窗口GUI或非HTML弹出窗口的元素,并提供元素的属性,比如 title, class, instance。
SciTE Script Editor:编辑器,用于编写AutoIT脚本。

编写AutoIT脚本

获取属性

  1. 打开需要上传文件的窗口,通过AutoIt Window Info,拖动Finder Tool获取元素属性:
    AutoIT+Selenium的使用
    获取的属性如下:
    AutoIT+Selenium的使用
    我们会根据这些属性编写脚本。

方法介绍

这里介绍Web自动化脚本编写过程中可能用到的方法,其余方法查看官方文档

WinWaitActive(“title”[,“text”[,timeout]]):

等待窗口Active,参数:

  • title:与元素识别器的Title对应
  • text:该窗体下的文本,一般""即可
  • timeout:超时时间,类似于selenium中的WebDriverWait的timeout
WinGetPos(“title”[,“text”]):
  • 返回窗体的位置信息:
    $ aArray [0] = X位置
    $ aArray [1] = Y位置
    $ aArray [2] =宽度
    $ aArray [3] =高度
MouseClick ( “button” [, x, y [, clicks = 1 [, speed = 10]]] )

模拟鼠标点击

  • button:"left"为鼠标左键,"right"为鼠标右键
  • x,y:要在坐标为x,y的位置上进行点击
  • clicks:点击次数
Sleep ( milliseconds)

单位毫秒,5000代表5秒

ControlFocus ( “title”, “text”, controlID )

将输入焦点设置为窗口上的给定控件,参数:

  • title:与元素识别器的Title对应
  • text:该窗体下的文本,一般""即可
  • controllID:{Class} + {Instance}。如图AutoIT+Selenium的使用,则该参数值为:Edit1
ControlClick(" title “,” text ",controlID )

发送鼠标单击命令到给定控件,参数同ControlFocus 。

ControlSetText(" title “,” text “,controlID ,” new text" )

设置控件的文本,参数:

  • new text:要设置到控件中的新文本

应用

;等待Title为phpwind - Powered by phpwind - Google Chrome的窗口
Local $win = WinWaitActive("phpwind - Powered by phpwind - Google Chrome","",10)

;在本机分辨率宽度为1616,高度为876的情况下,对坐标点(630507)进行鼠标左击
$pos =WinGetPos($win)
$high=$pos[3]  ;表示窗口的的实际高度
$weight=$pos[2]  ;表示窗口的实际宽度
$click_x=630*$weight/1616  ;630表示我在当前电脑分辨率宽度为1616下的X坐标值
$click_y=507*$high/876  ;507表示我再当前电脑分辨率高度为876下的Y坐标值
MouseClick("left",$click_x,$click_y,1)

;等待Class为#32770的窗体
WinWaitActive("[CLASS:#32770]","",10)
;把焦点设置在controllID为Edit1的控件中
ControlFocus("打开","","Edit1")
;设置该控件的文本为C:\Users\qvzn0\Pictures\test.jpeg
ControlSetText("打开","","Edit1","C:\Users\qvzn0\Pictures\test.jpeg")
;点击controllID为Button1的控件
ControlClick("打开","","Button1")

把脚本编译成exe文件

编写完上述脚本后,保存到任意路径,在点击菜单栏Tools -> Complile,出现:AutoIT+Selenium的使用
一般默认即可,点击Comlile Script后会在同一目录下生成exe文件。

调用exe文件

在自动化代码打开上传文件的窗体后,调用exe文件即可:

  • Java的调用方法:
Runtime.getRuntime().exec("C:/Users/qvzn0/Desktop/test3333.exe");	
  • Python的调用方法:
os.system("C:/Users/qvzn0/Desktop/test3333.exe")

参考

相关文章: