在GUI测试过程中,通常会碰到对象无法被测试工具识别的问题,这时候往往需要特殊的解决办法,其中一种方法就是通过发送键盘按键的方式来操纵控件。
下面以QQ2009正式版为例,介绍使用Type和Mercury.DeviceReplay对象处理控件的方法。
以下是录制的脚本:
Window("QQ2009 正式版").Activate
Window("QQ2009 正式版").WinObject("123456").Click 46,11
Window("QQ2009 正式版").WinObject("123456").Type "123456"
Window("QQ安全中心").Activate
Window("QQ安全中心").Click 369,302
可以看到密码输入的步骤没有录制下来,按下登录按钮的步骤也没有录制下来。在对象库手工添加对象后再录制,仍然没有把密码输入的步骤录制下来,因此需要手工添加这一步的脚本(另外在对象库中也不能手工地把登录按钮对象添加进去)。调整脚本如下:
Window("QQ2009 正式版").Activate
Window("QQ2009 正式版").WinObject("123456").Click 46,11
Window("QQ2009 正式版").WinObject("123456").Type "123456"
Window("QQ2009 正式版").WinEdit("Edit").Type "123456"
' 按5次TAB键后聚焦在“登录”按钮上面
For I=1 to 5
Window("QQ2009 正式版").Type micTab
Next
Window("QQ2009 正式版").Type micReturn ' 按回车键模拟用户点击“登录”按钮
在这里使用了Window测试对象的Type方法来模拟按键,Type方法接受一个按键常量作为输入参数。
登录如果失败会出现“QQ安全中心”界面,在这个界面中“取消按钮”也没有被识别出来,因此需要采用相同的办法来处理:
If Window("QQ安全中心").Exist(10) Then ' 密码输入不正确
Window("QQ安全中心").Activate
Window("QQ安全中心").Type micTab
Window("QQ安全中心").Type micReturn
End If
当然,这里也可以使用DeviceReplay对象来模拟按键。
附Type方法的按键常量:
Constant
|
Action
|
micCtrlDwn
|
Presses the Ctrl key.
|
micCtrlUp
|
Releases the Ctrl key.
|
micLCtrlDwn
|
Presses the left Ctrl key.
|
micLCtrlUp
|
Releases the left Ctrl key.
|
micRCtrlDwn
|
Presses the right Ctrl key.
|
micRCtrlUp
|
Releases the right Ctrl key.
|
micAltDwn
|
Presses the Alt key.
|
micAltUp
|
Releases the Alt key.
|
micLAltDwn
|
Presses the left Alt key.
|
micLAltUp
|
Releases the left Alt key.
|
micRAltDwn
|
Presses the right Alt key.
|
micRAltUp
|
Releases the right Alt key.
|
micShiftDwn
|
Presses the Shift key.
|
micShiftUp
|
Releases the Shift key.
|
micLShiftDwn
|
Presses the left Shift key.
|
micLShiftUp
|
Releases the left Shift key.
|
micRShiftDwn
|
Presses the right Shift key.
|
micRShiftUp
|
Releases the right Shift key.
|
micIns
|
Presses the Insert key.
|
micDel
|
Presses the Delete key.
|
micHome
|
Presses the Home key.
|
micEnd
|
Presses the End key.
|
micPgUp
|
Presses the Page Up key.
|
micPgDwn
|
Presses the Page Down key.
|
micUp
|
Presses the Up arrow key.
|
micDwn
|
Presses the Down arrow key.
|
micLeft
|
Presses the Left arrow key.
|
micRight
|
Presses the Right arrow key.
|
micEsc
|
Presses the Esc key.
|
micBack
|
Presses the Backspace key.
|
micReturn
|
Presses the Return key.
|
micTab
|
Presses the Tab key.
|
micBreak
|
Presses the Break key.
|
micPause
|
Presses the Pause key.
|
micPrintScr
|
Presses the Print Screen key.
|
micWinLogoDwn
|
Presses the Windows Logo key.
|
micWinLogoUp
|
Releases the Windows Logo key.
|
micLWinLogoDwn
|
Presses the left Windows Logo key.
|
micLWinLogoUp
|
Releases the left Windows Logo key.
|
micRWinLogoDwn
|
Presses the right Windows Logo key.
|
micRWinLogoUp
|
Releases the right Windows Logo key.
|
micAppKey
|
Presses the Application key.
|
micF1
|
Presses the F1 key.
|
micF2
|
Presses the F2 key.
|
micF3
|
Presses the F3 key.
|
micF4
|
Presses the F4 key.
|
micF5
|
Presses the F5 key.
|
micF6
|
Presses the F6 key.
|
micF7
|
Presses the F7 key.
|
micF8
|
Presses the F8 key.
|
micF9
|
Presses the F9 key.
|
micF10
|
Presses the F10 key.
|
micF11
|
Presses the F11 key.
|
micF12
|
Presses the F12 key.
|
micNumLockOn
|
Turns on the Num Lock.
|
micCapsLockOn
|
Turns on the Caps Lock.
|
micScrollOn
|
Turns on the Scroll Lock.
|
micNumLockOff
|
Turns off the Num Lock.
|
micCapsLockOff
|
Turns off the Caps Lock.
|
micScrollOff
|
Turns off the Scroll Lock.
|