Bootstrap

AutoIt的应用

少数情况下需要操作系统级的弹窗,可以使用AutoIt。

AutoIt现在最新版是V3版本,这是一个类似BASIC脚本语言的免费软件,用于Windows GUI中进行自动化操作。利用模拟键盘按键,鼠标移动,窗口和控件的组合来实现自动化任务,而这是其他语言不可能做到和无可靠方法实现的(例如VBScript和SendKeds)。

1.安装AutoIt

下载地址:

AutoIt Downloads - AutoIt

下载下图的安装包

2.解压后

 3.运行后第一个界面直接NEXT

 

4.  I Agree

 

 5. NEXT

6.选择下面的Edit the script;(这是AutoIt的编辑工具)

 

7.NEXT

 

8.Install

 

 最后点击finish(就不截图了)

二、使用

1.创建Auto v3 Script文件

创建文件如下:

双击打开就可以编写了 

2.使用Auto Window Info

打开Auto Window Info(x64)或Auto Window Info(x86)

类似于浏览器的F12,使用Finder Tool获取窗口的title等信息

 

方法介绍

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

WinWaitActive的参数

参数解释
title与元素识别器的title对应
text该窗体下的文本,一般设置为""即可
timeout超时时间,类似于Selenium的timeout

返回窗体的位置信息: WinGetPos("title"[,"text"])

WinGetPos的参数

参数解释
$aArray[0]X位置
$aArray[1]Y位置
$aArray[2]宽度
$aArray[3]高度

模拟鼠标单击:MouseClick("button" [,x,y[,clicks =1 [, speed = 10]]])

MouseClick参数

参数解释
buttonleft为鼠标左键,right为鼠标右键
x,y要在指定的坐标位置上进行单击
clicks单机次数

睡眠sleep(),单位毫秒,5000代表5秒

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

ControlFocus参数

参数解释
title与元素识别器的title对应
text该窗体下的文本,一般设置为""即可
controlID{Class}+{Instance}

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

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

ControlSetText参数

参数解释
title与元素识别器的title对应
text该窗体下的文本,一般设置为""即可
controlID{Class}+{Instance}
new text

要设置到控件中的新文本

3.编写AutoIT script内容

示例:

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.16.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
;ControlFocus("title","text",controlID) Edit1=Edit instance 1
   ControlFocus("打开", "","Edit")

;Wait 10 seconds for the Upload window to appear
   WinWait("[CLASS:#32770]","",10)

   Sleep(2000)

;Set the File name text on the Edit field
   ControlSetText("打开", "", "Edit1", "C:\Users\1\Desktop\test.txt")

   Sleep(2000)

;Click on the Open button
   ControlClick("打开", "","Button1");

4.打开Compile Script to.exe

 

将之前编辑的文件拖入Au2Exe ,点击Convert

 

 将AutoIT与Selenium结合

# Writer:Taka
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains
import os
from tools.Hightlightelement import heighLightElement


driver = webdriver.Chrome()
driver.get("https://sahitest.com/demo/php/fileUpload.htm")
sleep(2)
ele = driver.find_element_by_id('file')
heighLightElement(driver,ele)
ActionChains(driver).click(ele).perform()
sleep(2)
os.system(r'D:\PYFILE\PycharmProjects\UI_automation\tools\test.exe')
sleep(3)
driver.quit()

;