qtp 问题汇总
上一篇 / 下一篇 2010-07-09 21:33:24 / 个人分类:QTP
一、Cannot find the "shoujian.projectname" object's parent "10_2" (class Frame). Verify that parent properties match an object currently displayed in your application.问题的解决。
u} L#d+a7U0这个问题真是郁闷,其实产生的主要原因是:在录制脚本的时候,qtp没有识别出来框架Frame中的对象,回放时找不到对象出错。
q){0m%dn V~F0解决办法:通过object spy 识别对象 并将其添加到对象库;然后在录制点击对象的一段脚本(或者自己写),再次回放就ok了。
u l"VbSL i0
UET&J,@/w2W!Om0二、注意:datatable.Importsheet "D:\test\USER_INFO.xls",1,"Action1"中,"Action1"一定要加双引号,要不然默认导入到Global中。
&NBq"I yl0B R0
6`N$j*C$bn ?/E xl.C+q@*N0三、自动启动qtp的vbscript脚本。51Testing软件测试网`&oj"v,c1}"_
dim qtapp
Set qtapp=createobject("QuickTest.application")
qtapp.Launch
qtapp.visible=true
B;vB"b#PlxL0用法:将脚本卸载记事本文件中,文件格式保存为.vbs点击直接运行。就可以自动启动qtp。51Testing软件测试网9rp%i6L(Q
51Testing软件测试网tr2HFn Q nF7Z
四、描述性编程中出现“The “[WinEdit]”object's description ,matches more than one of the objects currently displayed in your appliction.Add addtional properties to the objects ddescription in order to uniquely identify the object.”中问题的解决。51Testing软件测试网-k`)Bbgb)U \
这个问题看起来其实很简单就是在QTP描述过程中,发现匹配该对象的属性多于1个,因此无法正确匹配,所以QTP报错。错误如图下:
vY(ry2M:C1TQ0
Q%MD H_^6m7q1H(w0
N.F qAyJ0YO0问题解决方法:51Testing软件测试网0p x7]%_:s-M,c
添加更多的对象属性,以便正确匹配,在对象查看器点击该对象(我的是password对象),点击,查看对象的属性,添加更多的属性,如:window id 等。同时将脚本修改为:51Testing软件测试网(Q.FhZ3p
Dialog("Login").WinEdit("attached text:=Password:","window id:=3001").Set "cheers_lee"51Testing软件测试网;t,fT:M3C2SM@Un
注意红色字体部分,我是同个两个属性匹配WinEdit的,一个是attached text另一个是window id。再次运行脚本,测试通过OK!强调的是attached text和window id 是对象的属性,通过对象查看器可以看到。51Testing软件测试网:a_t$p };aN
u} L#d+a7U0这个问题真是郁闷,其实产生的主要原因是:在录制脚本的时候,qtp没有识别出来框架Frame中的对象,回放时找不到对象出错。
q){0m%dn V~F0解决办法:通过object spy 识别对象 并将其添加到对象库;然后在录制点击对象的一段脚本(或者自己写),再次回放就ok了。
u l"VbSL i0
UET&J,@/w2W!Om0二、注意:datatable.Importsheet "D:\test\USER_INFO.xls",1,"Action1"中,"Action1"一定要加双引号,要不然默认导入到Global中。
&NBq"I yl0B R0
6`N$j*C$bn ?/E xl.C+q@*N0三、自动启动qtp的vbscript脚本。51Testing软件测试网`&oj"v,c1}"_
dim qtapp
Set qtapp=createobject("QuickTest.application")
qtapp.Launch
qtapp.visible=true
B;vB"b#PlxL0用法:将脚本卸载记事本文件中,文件格式保存为.vbs点击直接运行。就可以自动启动qtp。51Testing软件测试网9rp%i6L(Q
51Testing软件测试网tr2HFn Q nF7Z
四、描述性编程中出现“The “[WinEdit]”object's description ,matches more than one of the objects currently displayed in your appliction.Add addtional properties to the objects ddescription in order to uniquely identify the object.”中问题的解决。51Testing软件测试网-k`)Bbgb)U \
vY(ry2M:C1TQ0
Q%MD H_^6m7q1H(w0
N.F qAyJ0YO0问题解决方法:51Testing软件测试网0p x7]%_:s-M,c
添加更多的对象属性,以便正确匹配,在对象查看器点击该对象(我的是password对象),点击,查看对象的属性,添加更多的属性,如:window id 等。同时将脚本修改为:51Testing软件测试网(Q.FhZ3p
Dialog("Login").WinEdit("attached text:=Password:","window id:=3001").Set "cheers_lee"51Testing软件测试网;t,fT:M3C2SM@Un
注意红色字体部分,我是同个两个属性匹配WinEdit的,一个是attached text另一个是window id。再次运行脚本,测试通过OK!强调的是attached text和window id 是对象的属性,通过对象查看器可以看到。51Testing软件测试网:a_t$p };aN
五、修改QTP中对象的默认识别属性
以WebCheckBox为例。51Testing软件测试网.e1mC(E}7@;LE'T)V
在QTP里面 ,选择Tools --> Object Identification...Environment选择Web,找到 WebCheckBox,看看QTP默认的识别WebCheckBox对象时使用的是哪些属性。可以修改识别WebCheckBox对象的属性。51Testing软件测试网"Zc'l)h2p3?wK_
注意: 修改只对以后录制的脚本起作用。51Testing软件测试网'[6J%M#`)P+fT
在QTP里面 ,选择Tools --> Object Identification...Environment选择Web,找到
注意: 修改只对以后录制的脚本起作用。51Testing软件测试网'[6J%M#`)P+fT
六、QTP如何测试鼠标右键菜单
以QTP附带的订票网站sample为例,edit控件username鼠标右键,点击paste(第4个菜单项)51Testing软件测试网6l.TS q2}3[
*DO!rY"o/w6H T0cur_replay_type = Setting.WebPackage("ReplayType")
:[|bD!^0Setting.WebPackage("ReplayType") = 2
7_?9_J:WN0Browser("Browser").Page("Welcome:MercuryTours").WebEdit("userName").Click 5,4, micRightBtn
0}-a D1L*R`0Setting.WebPackage("ReplayType") = cur_replay_type51Testing软件测试网 cx2w_.C!n
/b/QD?h9GC0index=451Testing软件测试网O2uhm^`-P7GQd
Set WshShell = CreateObject("Wscrīpt.Shell")
O.b1tEW$eR?UZ0For i = 1 To index51Testing软件测试网#wp+fQ`,F2Yl!^7U
WshShell.sendKeys "{DOWN}"
.E Fz!E(y|0Next
`iUp?(L~t0WshShell.sendKeys "{ENTER}"
'f/w|/sP4u0Set WshShell = nothing
*DO!rY"o/w6H T0cur_replay_type = Setting.WebPackage("ReplayType")
:[|bD!^0Setting.WebPackage("ReplayType") = 2
7_?9_J:WN0Browser("Browser").Page("Welcome:MercuryTours").WebEdit("userName").Click 5,4, micRightBtn
0}-a D1L*R`0Setting.WebPackage("ReplayType") = cur_replay_type51Testing软件测试网 cx2w_.C!n
/b/QD?h9GC0index=451Testing软件测试网O2uhm^`-P7GQd
Set WshShell = CreateObject("Wscrīpt.Shell")
O.b1tEW$eR?UZ0For i = 1 To index51Testing软件测试网#wp+fQ`,F2Yl!^7U
.E Fz!E(y|0Next
`iUp?(L~t0WshShell.sendKeys "{ENTER}"
'f/w|/sP4u0Set WshShell = nothing
七、如何设置让对象库不产生重复对象
tools --options---web ---page/frame. optinons51Testing软件测试网&Pm+tKXJU4P
都选择第二项.就OK了.
都选择第二项.就OK了.
八、QTP中用代码连接数据库
Set Conn = CreateObject("ADODB.Connection" )
2lZF(h6iNri;d9qW0str="DRIVER=Oracle in OraHome92;SERVER=192.168.0.1;DBQ=testdb;user id=test; password=test"
Wv5HC;XbX%y,T0Conn.open str
d c%c,_,OSwx*A P1c0Set Rs = CreateObject ("ADODB.Recordset" )
{cfk/LzX [.`0sql = "select * from user_table t where table_name = 'XXX' "51Testing软件测试网/Qv)c:_&p
Rs.open sql,conn',1,3
2lZF(h6iNri;d9qW0str="DRIVER=Oracle in OraHome92;SERVER=192.168.0.1;DBQ=testdb;user id=test; password=test"
Wv5HC;XbX%y,T0Conn.open str
d c%c,_,OSwx*A P1c0Set Rs = CreateObject ("ADODB.Recordset" )
{cfk/LzX [.`0sql = "select * from user_table t where table_name = 'XXX' "51Testing软件测试网/Qv)c:_&p
Rs.open sql,conn',1,3
九、QTP测试页面字体颜色的办法
set ōbj =Browser().Page().WebElement().Object
#ae)QF![:vm:m0' Get the object51Testing软件测试网6n S#t'?s:z$d
set iStyle= obj.currentstyle
/{,{K6F)[M0' Get the attribute51Testing软件测试网8Gl IW!x.Z)\ _G
sColor = iStyle.color
#ae)QF![:vm:m0' Get the
set iStyle= obj.currentstyle
/{,{K6F)[M0' Get the attribute51Testing软件测试网8Gl IW!x.Z)\ _G
sColor = iStyle.color
十、下拉菜单不能回放的解决方法
在录制时,比如打开记事本,点击下拉菜单 "文件"-->"退出";51Testing软件测试网f-h;w5E+V6I-B
回放时会出现 object not visible ;51Testing软件测试网"WV'A?3i,q#f:D
windows("记事本").click 193,11751Testing软件测试网5{D[7{9jD0ajW"n*v
windows("记事本").winmenu("ContextMenu").Select "文件:退出"
3a.}7\s2|051Testing软件测试网olWVP
QTP默认录制方式是无法录制下拉菜单的,必须修改设置后再录制
0u1h }oX].c]E3l"O0修改设置如下:51Testing软件测试网q0j.or yH!^0^
在tools -> web event recording configuration 点击custom settings... 展开Web objects,51Testing软件测试网k)pYclL
选种webelement,点击event -> add -> onmouseover 。并确定在record栏内,状态是enabled。
.Et9MqYu0然后再重新录制你的脚本。51Testing软件测试网3cb}j6Bb/|c/b
执行录制后的脚本,无法回放成功,这是因为脚本只录制了鼠标的onmouseover 事件,却没有录制click事51Testing软件测试网8^HHlkU+\
件,所以脚本录制完后要手动添加click事件。51Testing软件测试网^G1x,Ex8R:e Q
回放时会出现 object not visible ;51Testing软件测试网"WV'A?3i,q#f:D
windows("记事本").click 193,11751Testing软件测试网5{D[7{9jD0ajW"n*v
windows("记事本").winmenu("ContextMenu").Select "文件:退出"
3a.}7\s2|051Testing软件测试网olWVP
QTP默认录制方式是无法录制下拉菜单的,必须修改设置后再录制
0u1h }oX].c]E3l"O0修改设置如下:51Testing软件测试网q0j.or yH!^0^
在tools -> web event recording configuration 点击custom settings... 展开Web objects,51Testing软件测试网k)pYclL
选种webelement,点击event -> add -> onmouseover 。并确定在record栏内,状态是enabled。
.Et9MqYu0然后再重新录制你的脚本。51Testing软件测试网3cb}j6Bb/|c/b
执行录制后的脚本,无法回放成功,这是因为脚本只录制了鼠标的onmouseover 事件,却没有录制click事51Testing软件测试网8^HHlkU+\
件,所以脚本录制完后要手动添加click事件。51Testing软件测试网^G1x,Ex8R:e Q
十一、QTP中如何识别带参数的链接?
QTP中如何识别带参数的链接?比如:"Browser("browser").Page("page").Link("href:=http://www.xxx.test/file/upload.php?matchable=0"51Testing软件测试网q]pgs t3o|@3O
51Testing软件测试网j$Z1CL;cs3k{-j
特殊字符都需要用转义字符"\"来进行转义。
51Testing软件测试网j$Z1CL;cs3k{-j
特殊字符都需要用转义字符"\"来进行转义。
十二、如何让QTP运行时自动产生提示信息并自动确定?
Set WshShell = CreateObject("Wscrīpt.Shell")51Testing软件测试网lGp{3ADa0D
WshShell.Popup "123456789", 2, "标题内容"
十三、QTP回放的过程中出现禁止运行控件提示的解决方法
修改QTP设置如下:toos-->options..-->Active Screen-->Advanced-->点选Load ActiveX controls
十四、从QC自动启动qtp如何自动加载插件
'此函数用于加载指定Test所有的插件,若要运行Test可自己加个qtApp.Test.Run51Testing软件测试网[Vt8\(U$g K.u
Function Load_Addins(testPath)
P%Yd R#h d%e4@l#Z0 Dim qtApp 'As QuickTest.Application51Testing软件测试网G2R;r+ae2P
Dim blnNeedChangeAddins
!VlR\*r/pO_@{0 Dim arrTestAddins
2AMYN+BTnn/z9I(D0 Set qtApp = CreateObject("QuickTest.Application")51Testing软件测试网2pI}Ja
arrTestAddins = qtApp.GetAssociatedAddinsForTest(testPath)51Testing软件测试网+W:]dmA9f2h%W
blnNeedChangeAddins = False51Testing软件测试网O$t"ub(ai
i;Fr5iH
For Each testAddin In arrTestAddins51Testing软件测试网$`,BJ+`ndMd%Hc
If qtApp.Addins(testAddin).Status <> "Active" Then51Testing软件测试网,az.~ cts i
blnNeedChangeAddins = True
&X K(b1Sz7|K0 Exit For
9JL Ow {~0 End If51Testing软件测试网of:T m
be+\
Next
p$^_\@*_Cl;I0 If qtApp.Launched And blnNeedChangeAddins Then
"_IG.p j_V0 qtApp.Quit
^)`R_&q6Wt0 End If
'G_3sKaL0 If blnNeedChangeAddins Then
e0C _/R;h Ce9d0 Dim blnActivateOK51Testing软件测试网fM2L7{r)rn;xlw,S
blnActivateOK = qtApp.SetActiveAddins(arrTestAddins, errorDescrīption)
uy/i(}+o'fB0 If Not blnActivateOK Then51Testing软件测试网/B+?Q lp^A,L
Call ErrorLog(errorDescrīption) '这里是调用自己的日志函数,可替换为自己的或注释掉51Testing软件测试网!YI5R$H
PC:X
Wscrīpt.Quit51Testing软件测试网$SIn.OeW R0@
End If
XDUnNb)nN*t#el0 End If51Testing软件测试网R P9}9mc]7f
If Not qtApp.Launched Then51Testing软件测试网*ED3]/PhA.{;I2uL O8x
qtApp.Launch51Testing软件测试网&u_]frd}
End If51Testing软件测试网'U
uQ4x|LiQp
qtApp.Visible = True51Testing软件测试网n-B!?v?`a(F
qtApp.Open testPath51Testing软件测试网3[#\ Np
Pq1@3exg
'可在此加入qtApp.Test.Run来运行Test
8vE%Q @.d0 Set qtApp = Nothing
F.NNa7E~N0End Function
Function Load_Addins(testPath)
P%Yd R#h d%e4@l#Z0
!VlR\*r/pO_@{0
2AMYN+BTnn/z9I(D0
&X K(b1Sz7|K0
9JL Ow {~0
p$^_\@*_Cl;I0
"_IG.p j_V0
^)`R_&q6Wt0
'G_3sKaL0
e0C _/R;h Ce9d0
uy/i(}+o'fB0
XDUnNb)nN*t#el0
'可在此加入qtApp.Test.Run来运行Test
8vE%Q @.d0
F.NNa7E~N0End Function
}|,L E-\q-P0r0
TAG:
三郎
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | 5 | 6 | ||||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 |
我的存档
数据统计
- 访问量: 47648
- 日志数: 60
- 建立时间: 2006-12-08
- 更新时间: 2014-03-29