博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QTP基本使用——检查焦点
阅读量:4051 次
发布时间:2019-05-25

本文共 3975 字,大约阅读时间需要 13 分钟。

今天看到一段检验焦点的代码, 特地研究 并分享出来。 希望共同分析。

 

'目的: 利用Tab键来检查焦点的位置变化是否正确

'检查控件的focused属性的函数
Public function CheckFocus (TestObject)
   If  TestObject.CheckProperty("focused","True",2) Then
        CheckFocus = True
     else
        CheckFocus = False
   End If
End Function
'tab按键的键值
Const VK_TAB = 15
 
'创建DeviceReplay 对象
Set DeviceReplay = CreateObject("Mercury.DeviceReplay ")
'创建Dictionary 对象,这个和创建数组很类似
Set dic = CreateObject("Scripting.Dictionary ")
'添加Dictionary的key和value,把顺序号作为key, 控件对象作为value
dic.add "1",dialog("Login").WinEdit("Agent Name:")
dic.add "2",dialog("Login").WinEdit("Password:")
dic.add "3",dialog("Login").WinButton("OK")
'定位到程序窗口, 并判断窗口中的默认焦点是否在正确的位置
Dialog("Login").Activate
CheckFocus(dic.item("1"))
For i=2 to dic.count
    DeviceReplay.PressKey VK_TAB  '此处就是点击tab键,
    If CheckFocus(dic.item(CStr(i))) = False Then
        Exit for
    else
        msgbox "焦点正确"
    End If
   
Next

 

PS: 首先要将对象Login加入到Object Repository. 然后在运行脚本即可

1. 查看属性值的方法

Msgbox Window("名片界面").WinObject("名片界面_一般_昵称").GetROProperty("text")

Msgbox TypeName (Window("名片界面").WinObject("名片界面_一般_昵称").GetROProperty("text"))
actual="xiaochong"
Msgbox StrComp (Window("名片界面").WinObject("名片界面_一般_昵 称").GetROProperty("text"),actual,1)

Result:

username   '得到具体的text内容

string   '得到text的类型
0   '比较实际得到的和actual的差别

 

2. 标准Windows控件的基本属性和方法

1)使用Exist属性来判断空间是否存在

:可以通过访问控件的Exist属性来判断控件是否存在于当前打开的应用程序中。

2)使用CheckProperty检查控件属性

:使用此方法可以实现与标准检查点想类似的功能。 例如。检查控件的属性是否与指定值相一致,如果一致,则在测试结果中标示为pass,否则标识为fail。

:其实现个功能与checkpoint实现的功能基本一致。

3)使用GetROProperty获取控件的属性

:此方法用于返回测试对象的当前属性

 

3. DeviceReplay 可以实现鼠标点击桌面上任意指定的坐标,或者模拟点击键盘操作。 好像在判断大小写的时候有局限性,  这里有篇小文章简单介绍了下, 感兴趣的可以研究下:

http://www.51testing.com/?161787/action_viewspace_itemid_84200.html

 

DeviceReplay 对象用来模拟鼠标的单击和移动键盘输入 等,但有个前提,实用该对象前,需要保证键盘状态正确 C7j?7Aw7H0 51Testing 软件测试网'l]AD7X4eV1p

如NUMLOCK是否打开等,因为DeviceReplay不能检测键盘状态

3@"K(O1y(y R0

+H XK1P/ _D4U0 Mercury.DeviceReplay包括如下方法:51Testing 软件测试网wL"/KV

BA!C {'u0 1、SendString 方法 51Testing软件测试网 h.vj-?:d!S

51Testing软件测试网ib~/V!O6I7e,@Y

向 激活的窗口发送一个或多个键盘按键:object.SendString( str ) 51Testing 软件测试网 bu/h R!z}1u i,qB:n

51Testing软件 测试网'fsSRy'h

2、KeyDown 方法

+S%pr�W%Z^dD]-J0 51Testing软件测试网 K'yI;hC

模拟一个按键的按下并保持:object.KeyDown( key )   key 按键的数值码

z!~R_[2tB?0

;L$b N|qv*n C0 3、KeyUp 方法 51Testing软件测试网0jK|VvY

51Testing软件测试网(TE"L(e�S E,v

模拟通过键盘释放某个按下的按键:object.KeyUp( key ) 51Testing软件测试网1?f!b#oD8J| sN

51Testing软件测试网6p l&j${z Q]

4、PressKey 方法

E/F"WZ^/m0

模拟通过键盘按下一个按键并立即释放: object.PressKey( key ) 51Testing 软件测试网P%dR2zaq&kS

 

2[]VF5j6A1_$d0

5、PressNKeys 方法

-{`n3HZ0

k-Ue/BJ4A&c&B:_[*~0

模拟通过键盘多次按下一个按键并立即释放: object.PressNKey( key, N )  N:重复次数

!YS5W'E#E$O ^0

 

k4?�a(cb;_0br-e5[0

6、DragAndDrop 方法 51Testing软件测试网J9Vm].tJ+[:?r0i

51Testing软件测试网 /P�f| o [.SL

用于执行从一点拖动到另外一点的操作: object.DragAndDrop( dragX, dragY, dropX, dropY, Button )

W ia!L!a3B)bV gl0

Button 的值包括 51Testing软件测试网T/@e dH4Z

LEFT_MOUSE_BUTTON = 0 51Testing软件测试 网+d/]:IXA#Km T

MIDDLE_MOUSE_BUTTON = 1

-cu/u m-P0

 RIGHT_MOUSE_BUTTON = 2 51Testing软件测试网 Yd Qh-C"b4e2p

51Testing软件测试网$Ic K PjF cCM

7、MouseClick 方法 51Testing软件测试网0O)W6g;r~d

(FU3bSy]0

在指定的屏幕位置执行鼠标左键或右键的单击操作: object.MouseClick( x, y, Button ) 51Testing软件测试网 L*z4NR(KeR^&C

 

XzP%k+}1Y8a$y0

8、MouseDbClick 方法 51Testing软件测试网Ta)v.C Hh5N'I

51Testing软件测试网rM0y S'Q&jC/V

在指定的屏幕位置中执行鼠标左键或右键的双 击事件: object.MouseDblClick( x, y, Button )

Hw BA#M J5?0

51Testing软件测试网 AE:v9` @Q~6Esi)~

9、MouseDown 方法 51Testing软件测试网F*m%VT,@

%UiZ1G$dh,a*I3N0

在屏幕指定位置按下鼠标左键或右键,并保持 按下状态: object.MouseDown( x, y, Button ) 51Testing 软件测试网)V,J'YP�} a.@jO2c

51Testing软件测试网.{X|Nf@9n2^3S sB

10、MouseUp 方法

)vu4O ~8W&W ]6s&_ K0

51Testing软件测试网Bz KW t8u

用于释放之前执行的 MouseDown 方法所按下的鼠标按键: object.MouseDown( x, y, Button ) 51Testing 软件测试网(}%~+gt,/.M:S&/

51Testing软件测试网 C3XdhVo*}%YF7/

11、MouseMove 方法

mG] oq Bt/~Z0

51Testing软件测试网8] TT$P7J$G$Y |Tl

用于模拟鼠标移动:object.MouseMove( x, y) 51Testing软件测试网+n8[SQ5X3c

51Testing软件测试网%X({AHr-p

12、SetSynchronizationTimeout 方法

'EoLo*F0

1n8CVIV0

设 置一个新的同步超时的时间值:object. SetSynchronizationTimeout( nSyncTimeout , is_sec)

ZjBpwk)V&a t0

nSyncTimeout 同步超时的时间值。

6^y)DL|b;_/C5y*x/k0

is_sec 指定设置的时间值是否以秒为单位

转载地址:http://xrcci.baihongyu.com/

你可能感兴趣的文章
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt5 everywhere 编译summary
查看>>
qt 创建异形窗体
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>
wpa_supplicant控制脚本
查看>>
gstreamer相关工具集合
查看>>
RS232 四入四出模块控制代码
查看>>
linux 驱动开发 头文件
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
网络视频服务器移植
查看>>
Encoding Schemes
查看>>
移植QT
查看>>
如此调用
查看>>