Selenium:AutoIT+Selenium的使用

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

安装AutoIT

访问这个网址:https://www.autoitscript.com/site/autoit/downloads/
下载并安装两个文件:SciTE4AutoIt3.exe,autoit-v3-setup.exe
在这里插入图片描述

介绍

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

编写AutoIT脚本

获取属性

  1. 打开需要上传文件的窗口,通过AutoIt Window Info,拖动Finder Tool获取元素属性:
    在这里插入图片描述
    获取的属性如下,我们会根据这些属性编写脚本。:
    Alt text

方法介绍

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

等待窗口就绪:WinWaitActive(“title”[,“text”[,timeout]])

参数 解释
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 点击次数

睡眠,单位毫秒,5000代表5秒:Sleep ( milliseconds)

将输入焦点设置为窗口上的给定控件:ControlFocus ( "title", "text", controlID )

参数 解释
title 与元素识别器的Title对应
text 该窗体下的文本,一般""即可
controllID {Class} + {Instance}。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tWzlXRAk-1618997380515)(./1553915298102.png)],则该参数值为:Edit1

发送鼠标单击命令到给定控件:ControlClick(" title "," text ",controlID )
参数同ControlFocus

设置控件的文本:ControlSetText(" title "," text ",controlID ," new text" )

参数 解释
title 与元素识别器的Title对应
text 该窗体下的文本,一般""即可
controllID {Class} + {Instance}。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aDZ0fpUf-1618997380518)(./1553915298102.png)],则该参数值为:Edit1
new text 要设置到控件中的新文本

应用

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

;在本机分辨率宽度为1616,高度为876的情况下,对坐标点(630,507)进行鼠标左击
$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,出现:在这里插入图片描述
一般默认即可,点击Comlile Script后会在同一目录下生成exe文件。

调用exe文件

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

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

参考

posted @ 2021-04-21 17:31  Feng1024  阅读(547)  评论(0编辑  收藏  举报