少数情况下需要操作系统级的弹窗,可以使用AutoIt。
AutoIt现在最新版是V3版本,这是一个类似BASIC脚本语言的免费软件,用于Windows GUI中进行自动化操作。利用模拟键盘按键,鼠标移动,窗口和控件的组合来实现自动化任务,而这是其他语言不可能做到和无可靠方法实现的(例如VBScript和SendKeds)。
1.安装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参数
参数 | 解释 |
button | left为鼠标左键,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()