51Testing软件测试论坛

标题: QTP WebTable单击选中一行的问题 [打印本页]

作者: xinyuzxx    时间: 2012-4-6 10:31
标题: QTP WebTable单击选中一行的问题
今天在写测试脚本的时候,遇到个问题, 我要做的事情时点击WebTable中的指定行,下面是出问题的代码(其中NewWebTable是一个WebTable对象,ChildItem中的第三个参数WebElement是用对象识别器识别出来的):
NewWebTable.ChildItem(2,1,"WebElement",0).Click
现在的问题是:我直接用这个代码运行,报如下错误:
[attach]78321[/attach]
但是如果我把列号变一下,变成NewWebTable.ChildItem(2,2,"WebElement",0).Click则能运行成功。

PS:(2,1)和(2,2)的区别是:(2,1)的内容是普通文本,而(2,2)里是一个Image。如果单击(2,1)则选中一行,而单击(2,2)只能点击此处的图片

麻烦帮忙看一下,急用,在线等~~~
作者: wangyanzhao    时间: 2012-4-6 13:00
,"WebElement",0    这有问题。对象库内对象是否正确
作者: luchao215225    时间: 2012-4-6 13:22
image可以直接使用file name来识别的 .
作者: xinyuzxx    时间: 2012-4-6 13:34
,"WebElement",0    这有问题。对象库内对象是否正确
wangyanzhao 发表于 2012-4-6 13:00


我的脚本是手动编写的,全用描述性编程,没有使用对象库
作者: lotus    时间: 2012-4-6 13:52
object.ChildItemCount (Row, Column, MicClass)
1.用它测试下你的(2,1)里面是否有"WebElement",
2.看是不是QTP没能识别出你说的这个文本,micClass是否是"WebElement"
3.看下(2.2)中有多少个对象,是否是把行号,或列号弄错了
作者: xinyuzxx    时间: 2012-4-6 14:51
object.ChildItemCount (Row, Column, MicClass)
1.用它测试下你的(2,1)里面是否有"WebElement",
2.看 ...
lotus 发表于 2012-4-6 13:52


我用ChildItemCount试了一下,显示结果是0,但是我用对象侦测器侦测的时候,那个地方确实是WebElement呀。
再者WebElement不是可以代表所有的Web对象的吗?而且那个地方确实有信息显示的呀
[attach]78329[/attach]如果不能用WebElement,那么单击一行再代码中该怎么实现?
作者: lotus    时间: 2012-4-6 16:22
本帖最后由 lotus 于 2012-4-6 16:23 编辑

你把这个table的html源码抓图发下上来看看,能看出来原因,再找解决方法
用firebug之类工具查看下,那个地方的html源码
作者: 026300    时间: 2012-4-6 16:42
没找到对象
作者: xinyuzxx    时间: 2012-4-6 17:06
我用的浏览器是IE8,那个firebug插件我整了半天也没能让它在IE中好好使用,直接查看IE源文件,一共就40多行代码,也没见到和Table相关的
作者: lotus    时间: 2012-4-6 17:16
我用的浏览器是IE8,那个firebug插件我整了半天也没能让它在IE中好好使用,直接查看IE源文件,一共就40多行 ...
xinyuzxx 发表于 2012-4-6 17:06


IE用Internet Explorer Developer Toolbar如下
    http://www.microsoft.com/download/en/details.aspx?id=18359
看看那处是什么
作者: lifr    时间: 2012-4-6 21:39
本帖最后由 lifr 于 2012-4-6 21:44 编辑

回复 1# xinyuzxx


   
是否是所谓的"TEXT"对象?

TEXT是一段文本, 不是tag, 所以也不是QTP的WebElement.
比如<td>xyz</td>
那么xyz不能通过webelement获得
作者: lifr    时间: 2012-4-6 21:51
回复 6# xinyuzxx

用native object, 操作Dom tree
作者: xinyuzxx    时间: 2012-4-9 08:58
谢谢大家的关注,问题已解决。用的还是WebElement对象。
解决方法是用:
NewWebTable.ChildItem(2,0,"WebElement",0).Click
即在列的位置用0来代替即可。
这是和同事在试验的时候找着的方法,虽然不知道为什么列处能用0,但是实现了单击一行的目的。
作者: xinyuzxx    时间: 2012-4-11 09:15
回复 14# middlemoom

应该不是隐藏列,因为帮助文档中说WebTable中的行列编号都是从1开始的
作者: xiaoshi_2011    时间: 2012-4-11 14:15
路过,学习一下
作者: SexyCat_1113    时间: 2012-4-11 23:19
不知道你这个table究竟是啥样的,,,




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2