51Testing软件测试论坛

标题: 急! QTP中WebTable对象的识别 [打印本页]

作者: 白羽轻舟    时间: 2006-3-16 14:07
标题: 急! QTP中WebTable对象的识别
Hi,
  各位!
  我在最近的测试工作中遇到一个问题,暂时用QTP无法解决,请您帮忙看一下! (原先我是用Rational Robot进行产品测试的,对QTP的Web测试刚刚入门,比较菜)
在用搜索引擎进行关键字搜索时,需要对搜索结果页面中的产品的正确性和位置进行验证.
如: http://www.smarter.com/search.php?q=sony&t0= ,在这个页面中我需要对形如这样的10个产品的品名与位置进行验证.(请看附件图片)
在QTP中,我通过设置WebTable对此页面中的10个产品的品名与位置进行验证,发现:
1.QTP无法根据WebTable的name进行此对象识别(在Expert View中编写)
Browser("Browser").Page("Smarter - Search for Products(").WebTable("Show More (74) ").Check CheckPoint("Show More (74)")
2.此搜索引擎进行关键字搜索时,不同关键字, WebTable的name也不一样,能否不通过name属性对WebTable进行识别.
关键词:sony, http://www.smarter.com/search.php?q=sony&t0=, WebTable的name是” Show More (74)”
关键词: batman+game, http://www.smarter.com/search.php?q=batman%2Bgame&t0= , WebTable的name是” Video Games   |   PlayStation 2 Games”

请高手指点,谢谢!
作者: mstiunicon    时间: 2006-3-16 18:52
如果WebTable 不是动态生成的,可以用Table的index属性来识别,否则我就没有办法了
作者: kai_top    时间: 2006-3-17 16:33
”74“是包含名称中含有关键词产品的总数;是动态变化的;
你可以先用关键词,从数据库里把包含这个关键词的产品搜索出来,放入QTP中datatable里data1,同时计数出总数n;
然后对Show More (74),中的74进行参数化,以n进行数据驱动;
然后通过Datatable.getcell把页面中列出的物品名称,放入datatable里data2;然后对data1和data2进行比较,看是否
等价,如果等的会就ok,不等证明有问题;如果要检查排列是否正确,只需要对data1先进行排列,然后data1和data2逐条对比就可以了;
作者: kai_top    时间: 2006-3-23 09:24
先不管上面的方法适合不适合,但它是有局限的,当搜索的一个物品数量<=10个时,就以名称来识别webtable了;;
另一个方法可以尝试一下:
通过childobject把属性值中类型为link及名称中含有“关键词”的所有超链接找出,其数据大概就是物品的数据;
所以我感觉针对具体测试对象,采用具体的测试方法及思维模式,以测试对象为中心
作者: lovetest6    时间: 2006-3-23 19:08
似乎象是一个CheckPoint参数化的问题嘛?
呵呵。没太看明白
作者: seachild    时间: 2006-3-24 16:03
好好研究一下这个WebTable,看看那个产品名字是怎么样显示的,如果是属于同一列,那就好办拉。。使用类似 Browse("xx").page("xx").WebTable("xxx").GetCellData (vtRow, vtColumn) 获得这个值就可以拉。。。。
你可以好好看一下帮助,看看webtable里面的方法。用QTP中抓取对象的方法好好研究那个网页是怎样显示这些产品名称的。。。这样就会找到解决方法拉。




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