4. 操作窗口和控件
  确定了窗口和控件的识别方法之后,我们可以使用AutoIt提供的函数来完成对窗口和控件的操作。常用的函数如下。
激活指定的窗口(设置焦点到该窗口,使其成为活动窗口)
WinActive("窗口标题"[,"窗口文本"])
关闭指定窗口
WinClose("窗口标题"[,"窗口文本"])
移动指定的窗口或调整窗口的大小
WinMove("窗口标题","窗口文本"],X坐标,Y坐标[,宽度,[,高度[,速度]]])
显示、隐藏、小化、大化或还原某个窗口
WinSetState("窗口标题","窗口文本",标志)
向指定控件发送鼠标点击命令:
ControlClick("窗口标题","窗口文本”,控件ID[,按键[,点击次数[,X坐标[,Y坐标]]]])
向指定控件发送命令:
ControlCommand("窗口标题","窗口文本",控件ID,"命令"[,"选项"])
设置输入焦点到指定窗口的某个控件上:
ControlFocus("窗口标题","窗口文本",控件ID)
向指定的控件发送字符串:
ControlSend("窗口标题","窗口文本",控件ID,"字符串"[,标志])
修改指定控件的文本:
ControlSetText("窗口标题","窗口文本",控件ID,"新文本",标志)
向激活窗口发送模拟键击操作:
Send("按键"[,标志])
执行鼠标点击操作:
MouseClick("按钮"[,X坐标,Y坐标[,点击次数[,速度]]] )
执行鼠标拖拽操作:
MouseClickDrag("按钮",X1坐标,Y1坐标,X2坐标,Y2坐标[,速度])
  5.验证
  在完成测试用例的操作步骤之后,黑盒测试方法主要是通过检查和比较软件的输出结果(包括界面、文件、数据等)来验证测试的结果,判断软件是否存在缺陷。软件界面的检查主要是检查软件窗口和控件的各种状态、标题、文本和图片等信息,并将检查结果写入终的测试报告中,以供分析。
  5.1 验证窗口、控件状态常用的方法
获取窗口控件的坐标位置和大小等:
WinGetPos("窗口标题"[,"窗口文本"]) ;用于窗口
ControlGetPos("窗口标题","窗口文本",控件ID) ;用于控件
获取窗口控件的状态(包括是否可见、是否激活、大化、小化等):
WinGetSate("窗口标题"[,"窗口文本"]) ;用于窗口
ControlCommand("窗口标题","窗口文本",控件ID,选项) ;用于控件
检查窗口是否存在
WinExists("窗口标题"[,”窗口文本”])
  5.2 验证窗口、控件文本常用的方法
获取窗口的完整标题名:
WinGetTitle("窗口标题"[,"窗口文本"])
获取窗口中的文本:
WinGetText("窗口标题"[,"窗口文本"])
获取控件上的文本:
ControlGetText("窗口标题","窗口文本",控件ID)
  5.3 验证图片或显示效果的常用的方法
  AutoIt没有提供图像比较函数,须要自己开发相应的函数。如果不准备开发这方面的功能,只有将要检查的图像或效果用截屏的方法保存下来,并附在测试报告中,让测试人员事后人工分析。
  截取整个屏幕或指定区域:
_ScreenCapture_Capture("C:Image1.jpg")

_ScreenCapture_Capture("C:Image1.jpg",0,0,796,596)

_ScreenCapture_CaptureWnd("C:Image1.jpg",窗口句柄)
  事例:
#include <ScreenCapture.au3>
;用来保存图像的路径和文件名
$file="c:ScreenCapture"&@MON & @MDAY & @HOUR & @MIN & @SEC&" .jpg"
_ScreenCapture_Capture($file);并保存到文件中
  5.4 验证文件常用的方法
检查文件是否存在:
FileExists("路径")
获取文件大小:
FileGetSize("路径")
获取文件基本属性(包括只读,隐藏等):
FileGetAttrib("路径")
  5.5 其他验证
返回当前鼠标指针形状的ID:
MouseGetCursor()
获取当前鼠标的坐标位置:
MouseGetPos([dimension])
  6. 实例
  下面这个脚本实例演示了如何打开计算器、找到计算器窗口、操作计算器完成“1+2”的计算和验证,并将检查的结果写入测试报告中。
  脚本如下:
Run("calc.exe")
WinWaitActive("计算器")
ControlClick("计算器","","1")
ControlClick("计算器","","+")
ControlClick("计算器","","2")
ControlClick("计算器","","=")
$Result=ControlGetText("计算器","",403)
if $Result=="3. " Then
FileWriteLine("C: esult.txt","正确:和期望结果3一致")
Else
FileWriteLine("C: esult.txt","错误:和期望结果3不一致,实际结果结果为"&$Result)
EndIf
WinClose("计算器")