xuewanju 发表于 2012-12-6 09:35:16

QTP描述性编程遇到的问题

本人刚学习QTP,用描述性编程写了一个关于在百度页面上识别link控件的程序,程序能顺利运行,但是结果是false,不知道问题出到什么地方啦,希望各位大侠能帮忙指点一下。谢谢
Set baidu = Browser("micClass:=Browser").Page("micClass:=Page")
print baidu.link("name:=新闻").Exist
Set baidu=Nothing

xjwldlover 发表于 2012-12-6 11:23:24

同样类型的问题一直在求助的第一页~
对象库、描述性编程强调的最重要的是对象的【唯一性】,通过描述可以唯一找到对象。
唯一的否定,是【不唯一】,包含 【多个】+【0个】,所以你要查找的对象有多个或零个。
这时你将Link的属性写入到一个描述性对象(Description.Create)里,使用Print baidu.childObjects(desc).count 来判断link的个数。多个,则证明你的Link对象需要再添加属性,以确保其唯一性。
0个,则说明你的LINK对象属性描述有错误。
仔细一看,没错啊,那么你就需要查看baidu.exist 是否存在,print一下,发现这个对象不存在,再分析,如此循环反复,明白?

你错误的原因就是同时存在多个浏览器

xuewanju 发表于 2012-12-6 11:45:29

回复 2# xjwldlover


    非常感谢

黑羽祭 发表于 2012-12-7 09:47:53

本帖最后由 黑羽祭 于 2012-12-7 09:51 编辑

回复 1# xuewanju


    诶?
这个问题昨天发过我邮箱吧。
其实用SPY点下百度页面上的新闻链接,就会发现问题原因了。
页面上并没有“新闻”,只有“新 闻”(中间有个空格)
so:
加个空格:
print baidu.link("name:=新 闻").Exist
就OK了。

xjwldlover 发表于 2012-12-7 10:08:09



XP_SP3 IE8(8.0.6001.18702)QTP11显示无空格

xuewanju 发表于 2012-12-7 10:30:08

回复 4# 黑羽祭


    是的,经过你的指点,程序已经运行成功了,确实是空格的问题。

黑羽祭 发表于 2012-12-7 10:43:42

回复 5# xjwldlover


    纳尼?还有这事?

kejiazhe 发表于 2014-10-12 22:54:55

xjwldlover 发表于 2012-12-6 11:23
同样类型的问题一直在求助的第一页~
对象库、描述性编程强调的最重要的是对象的【唯一性】,通过描述可以 ...

我也遇到同样的问题了,按照你说的调试方法试了一下,Print baidu.childObjects(desc).count输出link的个数是2,但百度首页上就一个新闻link啊,而且我就开了一个浏览器,搞不懂什么原因了,所以请教一下
PS:QTP版本11.5,浏览器版本IE11,现在百度首页是新版的,不是旧版的了,但这应该不影响结果吧?
页: [1]
查看完整版本: QTP描述性编程遇到的问题