qtp 问题汇总(转载)
上一篇 / 下一篇 2009-01-09 15:50:18 / 个人分类:转贴
一、Cannot
find the "shoujian.projectname" object's parent "10_2" (class Frame).
Verify that parent properties match an object currently displayed in
your application.问题的解决。51Testing软件测试网eE1f I
Ni9H
这个问题真是郁闷,其实产生的主要原因是:在录制脚本的时候,qtp没有识别出来框架Frame中的对象,回放时找不到对象出错。
6wBI-G,s_h0解决办法:通过object spy 识别对象 并将其添加到对象库;然后在录制点击对象的一段脚本(或者自己写),再次回放就ok了。
?l4a1t0L3_0
'w~ m8Li%Z|Kc0二、注意:datatable.Importsheet "D:\test\USER_INFO.xls",1,"Action1"中,"Action1"一定要加双引号,要不然默认导入到Global中。51Testing软件测试网Sec6Ljj
&W.Q8FHPoEf@ m0三、自动启动qtp的vbscrīpt脚本。
"D,y(K&WM kt `0dim qtapp
Set qtapp=createobject("QuickTest.application")
qtapp.Launch
qtapp.visible=true
k-K(YJPyf"g&XJ0用法:将脚本卸载记事本文件中,文件格式保存为.vbs点击直接运行。就可以自动启动qtp。
H e3^5n1m'b)g051Testing软件测试网`R8d*U.V9H/X"z
G}_!m-dk0
a4hH-BB&T'^U0在QTP里面 ,选择Tools --> Object Identification...Environment选择Web,找到 WebCheckBox,看看QTP默认的识别WebCheckBox对象时使用的是哪些属性。可以修改识别WebCheckBox对象的属性。51Testing软件测试网3g)D+oh
z*Y1u*k:d
注意: 修改只对以后录制的脚本起作用。
.b.fn`/E [-J+c;j0
这个问题真是郁闷,其实产生的主要原因是:在录制脚本的时候,qtp没有识别出来框架Frame中的对象,回放时找不到对象出错。
6wBI-G,s_h0解决办法:通过object spy 识别对象 并将其添加到对象库;然后在录制点击对象的一段脚本(或者自己写),再次回放就ok了。
?l4a1t0L3_0
'w~ m8Li%Z|Kc0二、注意:datatable.Importsheet "D:\test\USER_INFO.xls",1,"Action1"中,"Action1"一定要加双引号,要不然默认导入到Global中。51Testing软件测试网Sec6Ljj
&W.Q8FHPoEf@ m0三、自动启动qtp的vbscrīpt脚本。
"D,y(K&WM kt `0dim qtapp
Set qtapp=createobject("QuickTest.application")
qtapp.Launch
qtapp.visible=true
k-K(YJPyf"g&XJ0用法:将脚本卸载记事本文件中,文件格式保存为.vbs点击直接运行。就可以自动启动qtp。
H e3^5n1m'b)g051Testing软件测试网`R8d*U.V9H/X"z
G}_!m-dk0
四、修改QTP中对象的默认识别属性
以WebCheckBox为例。a4hH-BB&T'^U0在QTP里面 ,选择Tools --> Object Identification...Environment选择Web,找到
注意: 修改只对以后录制的脚本起作用。
.b.fn`/E [-J+c;j0
五、QTP如何测试鼠标右键菜单
以QTP附带的订票网站sample为例,edit控件username鼠标右键,点击paste(第4个菜单项)51Testing软件测试网7D_#B2nx{6n\
q+n `
51Testing软件测试网0}U){f S8O-W
cur_replay_type = Setting.WebPackage("ReplayType")
`bk,L+f0Setting.WebPackage("ReplayType") = 251Testing软件测试网2V|#pE8Sc8B
Browser("Browser").Page("Welcome:MercuryTours").WebEdit("userName").Click 5,4, micRightBtn51Testing软件测试网N#ZgLCG
Setting.WebPackage("ReplayType") = cur_replay_type
v8}"d w6d q6h051Testing软件测试网"N\,PR2~P
index=451Testing软件测试网VD$B0R}(o
Set WshShell = CreateObject("Wscrīpt.Shell")
f&c v,{0]0For i = 1 To index
M:[R QOy'F]B7Y2X0 WshShell.sendKeys "{DOWN}"51Testing软件测试网3j't F,`0ElzGd+n
Next
)Sz[Q:Y0WshShell.sendKeys "{ENTER}"51Testing软件测试网TM Zwr
Set WshShell = nothing
51Testing软件测试网0}U){f S8O-W
cur_replay_type = Setting.WebPackage("ReplayType")
`bk,L+f0Setting.WebPackage("ReplayType") = 251Testing软件测试网2V|#pE8Sc8B
Browser("Browser").Page("Welcome:MercuryTours").WebEdit("userName").Click 5,4, micRightBtn51Testing软件测试网N#ZgLCG
Setting.WebPackage("ReplayType") = cur_replay_type
v8}"d w6d q6h051Testing软件测试网"N\,PR2~P
index=451Testing软件测试网VD$B0R}(o
Set WshShell = CreateObject("Wscrīpt.Shell")
f&c v,{0]0For i = 1 To index
M:[R QOy'F]B7Y2X0
Next
)Sz[Q:Y0WshShell.sendKeys "{ENTER}"51Testing软件测试网TM Zwr
Set WshShell = nothing
六、如何设置让对象库不产生重复对象
tools --options---web ---page/frame optinons51Testing软件测试网
Q b
l#JC%{vfW
都选择第二项.就OK了.
都选择第二项.就OK了.
七、QTP中用代码连接数据库
Set Conn = CreateObject("ADODB.Connection" )
:cMqbl0str="DRIVER=Oracle in OraHome92;SERVER=192.168.0.1;DBQ=testdb;user id=test; password=test"51Testing软件测试网(Xj:hc ?$f
Conn.open str51Testing软件测试网&L8t[U'?5^2zv
Set Rs = CreateObject ("ADODB.Recordset" )
a6q} w!T7XD9A0sql = "select * from user_table t where table_name = 'XXX' "
2`Xs"O Y@;t{7aGbK0Rs.open sql,conn',1,3
:cMqbl0str="DRIVER=Oracle in OraHome92;SERVER=192.168.0.1;DBQ=testdb;user id=test; password=test"51Testing软件测试网(Xj:hc ?$f
Conn.open str51Testing软件测试网&L8t[U'?5^2zv
Set Rs = CreateObject ("ADODB.Recordset" )
a6q} w!T7XD9A0sql = "select * from user_table t where table_name = 'XXX' "
2`Xs"O Y@;t{7aGbK0Rs.open sql,conn',1,3
八、QTP测试页面字体颜色的办法
set ōbj =Browser().Page().WebElement().Object
"~$t E^H0j)qGO,q0' Get the object51Testing软件测试网tX.\|
O'Y)g#u
set iStyle= obj.currentstyle
Q@#Hr F8j9v J4A.u,^(E0' Get the attribute
sE4A*B[U8lI0sColor = iStyle.color
"~$t E^H0j)qGO,q0' Get the
set iStyle= obj.currentstyle
Q@#Hr F8j9v J4A.u,^(E0' Get the attribute
sE4A*B[U8lI0sColor = iStyle.color
九、下拉菜单不能回放的解决方法
在录制时,比如打开记事本,点击下拉菜单 "文件"-->"退出";
]bl'{}G0回放时会出现 object not visible ;51Testing软件测试网7P:z.G`kVf/V'@)u
windows("记事本").click 193,11751Testing软件测试网-D.r#k |@a)a \
windows("记事本").winmenu("ContextMenu").Select "文件:退出"
ABJhh0l;f051Testing软件测试网.?)Bn(p-VXI
QTP默认录制方式是无法录制下拉菜单的,必须修改设置后再录制
&I-Qr?#w9uf7i+]6E]0修改设置如下:51Testing软件测试网"eT[.jx F eiQY
在tools -> web event recording configuration 点击custom settings... 展开Web objects,
d~(q,zJU0选种webelement,点击event -> add -> onmouseover 。并确定在record栏内,状态是enabled。51Testing软件测试网 Q+\Gd)Wvj
然后再重新录制你的脚本。51Testing软件测试网*|%{*n!P1K$X-H@n
执行录制后的脚本,无法回放成功,这是因为脚本只录制了鼠标的onmouseover 事件,却没有录制click事51Testing软件测试网 I*K aER*_C`G?
件,所以脚本录制完后要手动添加click事件。
no+s MLYcJ B0
]bl'{}G0回放时会出现 object not visible ;51Testing软件测试网7P:z.G`kVf/V'@)u
windows("记事本").click 193,11751Testing软件测试网-D.r#k |@a)a \
windows("记事本").winmenu("ContextMenu").Select "文件:退出"
ABJhh0l;f051Testing软件测试网.?)Bn(p-VXI
QTP默认录制方式是无法录制下拉菜单的,必须修改设置后再录制
&I-Qr?#w9uf7i+]6E]0修改设置如下:51Testing软件测试网"eT[.jx F eiQY
在tools -> web event recording configuration 点击custom settings... 展开Web objects,
d~(q,zJU0选种webelement,点击event -> add -> onmouseover 。并确定在record栏内,状态是enabled。51Testing软件测试网 Q+\Gd)Wvj
然后再重新录制你的脚本。51Testing软件测试网*|%{*n!P1K$X-H@n
执行录制后的脚本,无法回放成功,这是因为脚本只录制了鼠标的onmouseover 事件,却没有录制click事51Testing软件测试网 I*K aER*_C`G?
件,所以脚本录制完后要手动添加click事件。
no+s MLYcJ B0
十、QTP中如何识别带参数的链接?
QTP中如何识别带参数的链接?比如:"Browser("browser").Page("page").Link("href:=http://www.xxx.test/file/upload.php?matchable=0"
5}f6`Aj kQ9T;K&F0
b/f(l\}pe0特殊字符都需要用转义字符"\"来进行转义。
5}f6`Aj kQ9T;K&F0
b/f(l\}pe0特殊字符都需要用转义字符"\"来进行转义。
十一、如何让QTP运行时自动产生提示信息并自动确定?
Set WshShell = CreateObject("Wscrīpt.Shell")
W]/z]iu,V4E0 WshShell.Popup "123456789", 2, "标题内容"
W]/z]iu,V4E0
十二、QTP回放的过程中出现禁止运行控件提示的解决方法
修改QTP设置如下:toos-->options..-->Active Screen-->Advanced-->点选Load ActiveX controls
十三、从QC自动启动qtp如何自动加载插件
'此函数用于加载指定Test所有的插件,若要运行Test可自己加个qtApp.Test.Run51Testing软件测试网2P]Z3c_7T0|&am
Function Load_Addins(testPath)
;b:?;tI V0 Dim qtApp 'As QuickTest.Application
,Yz)ovL)wS.k0 Dim blnNeedChangeAddins
WSd(Y!{0 Dim arrTestAddins
#H*YE+?&?H_3VV0 Set qtApp = CreateObject("QuickTest.Application")51Testing软件测试网.D"u"a1R(NUit
arrTestAddins = qtApp.GetAssociatedAddinsForTest(testPath)
#u(F3~$H8E0 blnNeedChangeAddins = False51Testing软件测试网r!w3O_m4p&@+fF
For Each testAddin In arrTestAddins51Testing软件测试网wvP1\'s#L
If qtApp.Addins(testAddin).Status <> "Active" Then
Function Load_Addins(testPath)
;b:?;tI V0
,Yz)ovL)wS.k0
WSd(Y!{0
#H*YE+?&?H_3VV0
#u(F3~$H8E0