51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3778|回复: 13
打印 上一主题 下一主题

[原创] 各位同行,帮我看看用QTP怎样测这个问题比较好?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-12-26 10:14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图question,

问题描述:我每次点击1(+体)都会产生2(产生新的体),我怎样用QTP来验证例如我点击n次1,产生n次2?
再提供一些信息:Browser("SkillBase 4.0 ").Page("SkillBase 4.0 ").WebElement("试题题干---多选单选填空简答匹配    无标准答案有标准答").GetROProperty("outerhtml")
id=store_body_X 每增加一个+体,X的值增大,我本想取出这个值做验证的依据,可又不知道怎么取出?也不知我的这种验证方法思路是否正确。
请各位给些意见,在线等!
先谢谢了!

outerhtml的内容:
<DIV class="tbFormElement leftPosition" id=ele_null style="WIDTH: 800px"><LABEL class=tbLabel style="WIDTH: 100px">
<SPAN class=labelIndent>&nbsp;</SPAN></LABEL><DIV class="tbFieldWrap tbElementWrapper" ?>
<DIV id=main><DIV class=store_body_even id=store_body_0 title=1><TABLE width=600><TBODY><TR><TD width="35%"><TEXTAREA disabled name=mbcTa>试题题干</TEXTAREA></TD><TD><INPUT id=mbcAddBody_0 onclick=addBody(),buttonState($(this),0) type=button value=+体>
<INPUT id=AddBodyPart_0 disabled onclick=proAddPart(0),buttonState($(this),0) type=button value=+项><SELECT id=selector_0 disabled onchange='buttonState($(this),"0")'><OPTION value=0 selected>---</OPTION><OPTION value=1>多选</OPTION><OPTION value=2>单选</OPTION><OPTION value=3>填空</OPTION><OPTION value=5>简答</OPTION><OPTION value=6>匹配</OPTION></SELECT></TD></TR><TR><TD colSpan=2><SPAN onmouseover='this.style.cursor="help"' style="BACKGROUND: url(/skillbase4/css/base/ctax/PNG8/tb_description.png); WIDTH: 100px" onclick=showDesc(1); onmouseout=default>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SELECT id=has_0><OPTION value=0 selected>无标准答案</OPTION><OPTION value=1>有标准答案</OPTION></SELECT><SPAN onmouseover='this.style.cursor="help"' style="BACKGROUND: url(/skillbase4/css/base/ctax/PNG8/tb_description.png); WIDTH: 100px" onclick=showDesc(2); onmouseout=default>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SELECT id=ifvisible_0><OPTION value=0 selected>不显示题干</OPTION><OPTION value=1>显示题干</OPTION></SELECT><SPAN onmouseover='this.style.cursor="help"' style="BACKGROUND: url(/skillbase4/css/base/ctax/PNG8/tb_description.png); WIDTH: 100px" onclick=showDesc(3); onmouseout=default>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>小题比重:<INPUT onbeforepaste="value=value.replace(/[^\d]/g,'')" id=rate_0 onkeyup="value=value.replace(/[^\d]/g,'') " disabled maxLength=3 size=3 value=0>% <SPAN onmouseover='this.style.cursor="help"' style="BACKGROUND: url(/skillbase4/css/base/ctax/PNG8/tb_description.png); WIDTH: 100px" onclick=showDesc(4); onmouseout=default>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SELECT id=ciraSelect_0 disabled onchange=showChange($(this),0)><OPTION value=0 selected>完全匹配</OPTION><OPTION value=1>不完全匹配</OPTION><OPTION value=2>自定义</OPTION></SELECT><SPAN id=cira_0 style="DISPLAY: none">答不全给分比重:<INPUT onbeforepaste="value=value.replace(/[^\d]/g,'')" id=ciratext_0 onkeyup="value=value.replace(/[^\d]/g,'') " disabled maxLength=3 size=3>%
</SPAN></TD></TR></TBODY>
</TABLE><DIV id=bodyPartsDiv_0></DIV></DIV><DIV id=addition>
<DIV class=store_body_even id=store_body_1 title=1>
<TABLE width=500><TBODY><TR><TD width="5%"><SPAN>◆</SPAN></TD><TD width="35%"><TEXTAREA disabled name=mbcTa_0>试题题干</TEXTAREA></TD><TD><INPUT id=MinusBody_0 onclick="buttonState($(this),-1),minBody('store_body_1')" type=button value=-体><INPUT id=AddBodyPart_1 disabled onclick=proAddPart(1),buttonState($(this),1) type=button value=+项><SELECT id=selector_1 onchange='buttonState($(this),"1")'><OPTION value=0 selected>---</OPTION><OPTION value=1>多选</OPTION><OPTION value=2>单选</OPTION><OPTION value=3>填空</OPTION><OPTION value=5>简答</OPTION><OPTION value=6>匹配</OPTION></SELECT></TD></TR><TR><TD width="5%"><SPAN style="DISPLAY: none"></SPAN></TD><TD colSpan=2><SELECT id=has_1 style="DISPLAY: none"><OPTION value=0 selected>无标准答案</OPTION><OPTION value=1>有标准答案</OPTION></SELECT>小题比重:<INPUT onbeforepaste="value=value.replace(/[^\d]/g,'')" id=rate_1 onkeyup="value=value.replace(/[^\d]/g,'') " maxLength=3 size=3>% <SELECT id=ciraSelect_1 onchange=showChange($(this),1)><OPTION value=0 selected>完全匹配</OPTION><OPTION value=1>不完全匹配</OPTION><OPTION value=2>自定义</OPTION></SELECT><SPAN id=cira_1 style="DISPLAY: none">答不全给分比重:<INPUT onbeforepaste="value=value.replace(/[^\d]/g,'')" id=ciratext_1 onkeyup="value=value.replace(/[^\d]/g,'') " maxLength=3 size=3>%</SPAN></TD></TR></TBODY></TABLE><DIV id=bodyPartsDiv_1></DIV><DIV></DIV></DIV></DIV><DIV id=store_body style="DISPLAY: none"><TEXTAREA name=mbcTa_0></TEXTAREA><P></P><INPUT onclick=minBody(bodyNameForReplace) type=button value=-体 name=MinusBody_0><INPUT onclick=addPart(1,bnForReplace) type=button value=+项 name=AddBodyPart_0><SELECT id=mbcQtype onchange=active(this.options[this.options.selectedIndex].value,0)><OPTION value=0 selected>---</OPTION><OPTION value=1>select1</OPTION><OPTION value=2>select2</OPTION></SELECT><DIV id=bodyPartsDiv_bnForReplace></DIV></DIV></DIV></DIV></DIV>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-12-26 10:25:52 | 只看该作者
可以用变量累加。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-12-26 10:40:45 | 只看该作者

请问 老厍 能不能说的详细点?我是QTP测试新手

请问 老厍 能不能说的详细点?我是QTP测试新手,在这个论坛中学到很多知识,可是在实际测试中就晕了!
焦急的等待中!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-12-26 13:35:05 | 只看该作者
你的体2的ID的编号是有规律的话,比如第一次点击体1,体2的ID是abc1,第二次点击体1,体2的ID是abc2
那么你可以直接点击体1的次数n来执行Browser("SkillBase 4.0 ").Object.GetElementByID("abc"&n)取得该体2
如果能取到那么说明正确
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-12-26 17:26:36 | 只看该作者

回复 4# 的帖子

按照您的建议,我这样改的,可是 运行时idDisplay变量都不认
Set htmDoc=Browser("SkillBase 4.0 - ").Page("SkillBase 4.0 - ").Object
Dim  idDisplay
  idDisplay=htmDoc.getElementById("store_body_"&n)
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-12-26 17:39:48 | 只看该作者
搂主语句有问题,对于getElementById,得到的是节点对象。不能用dim后的变量直接=,需要用Set,即
Set idDisplay=htmDoc.getElementById("store_body_"&n)
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-12-29 09:22:15 | 只看该作者

回复 6# 的帖子

按照您的建议改了。
我想要得到n的具体值,用mxgbox(idDiaplay)出错,还是没能得到。
请问我怎样得到n的值?
谢谢各位!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-12-29 09:29:00 | 只看该作者
原帖由 gaoy_b 于 2008-12-29 09:22 发表
按照您的建议改了。
我想要得到n的具体值,用mxgbox(idDiaplay)出错,还是没能得到。
请问我怎样得到n的值?
谢谢各位!

是MSGBOX,不是MXGBOX,错误信息里应该有提示的。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-12-29 09:48:08 | 只看该作者
原帖由 dreamever 于 2008-12-29 09:29 发表

是MSGBOX,不是MXGBOX,错误信息里应该有提示的。

对不起,是我写错了,我是用的MSGBOX,这个没错,只是它 不能得出我希望的Msgbox(idDisplay)中n的值。
我就是想得到例如:在innertext中id=store_body_3得到“store_body_3”
还请各位给与我这位初学者支持!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-12-29 11:02:19 | 只看该作者
我先问一下,你现在的问题是脚本运行出现异常错误吗,还是说运行可以正常执行,只是结果不是你想要的?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2008-12-29 11:23:35 | 只看该作者

回复 10# 的帖子

如果没有Msgbox(idDisplay)脚本运行正常。
我是想得到:
在innertext中id=store_body_3中id的值“store_body_3”,在innertext中有许多id,而我想得到其中一个id的值store_body_3
我没能得到这个id的值
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-12-29 14:38:22 | 只看该作者
晕,你既想用("store_body_"&n)这个值来寻找界面元素,又想得到这个值……这个问题本身不复杂,就是将界面中单元格的值取出来,然后判断这个值是否和预期值相等。你用id = stroe_body_3来找到了一个单元格对象的话,那么就用object.getproperty(properyname)获取那个值就行,注意别把这个代码直接粘贴进去,那个object代表你获取到的单元格对象,propertyname表示那个对象的文本属性名称,一般是“text或者是”context”,你可以用spy看一下,这样问题就解决了
比如说:set idDisplay表示idDisplay是一个对象或者集合,直接msgbox是不行的,你应该使用s = idDisplay.getproperty("text")来获取单元格的值,其中S就是你想要的。如果idDisplay是一个集合,那就用s = idDisplay(0).getproperty("text")获取,括号里的数字是集合中的索引。
只要找到了对象,你就一定可以获取到这个对象各个属性的值。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2008-12-29 15:09:26 | 只看该作者

回复 12# 的帖子

dreamever,真的很感谢您的不断支持。可是我觉得你说的和我要达到的测试目的不太是一回事。
我要问的问题是:如图question,我每点击button(+体)就会生成新的图中的2,我想用QTP实现点击button次数和生成2的数量是一致的。

在我试验的过程中想法是:做一个点击button(+体)的3次循环,发现innerhtml是一个DIV,DIV里有很多ID,点击第一次button(+体),其中有个id=store_body_1,点击第二次button(+体),就会再有一个id=store_body_2,我就是想要取这个动态的id的值。
请您能再次支持我!谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2008-12-30 17:13:51 | 只看该作者

顶一下

顶一下
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 16:16 , Processed in 0.089927 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表