QTP描述性编程遇到的问题
本人刚学习QTP,用描述性编程写了一个关于在百度页面上识别link控件的程序,程序能顺利运行,但是结果是false,不知道问题出到什么地方啦,希望各位大侠能帮忙指点一下。谢谢Set baidu = Browser("micClass:=Browser").Page("micClass:=Page")
print baidu.link("name:=新闻").Exist
Set baidu=Nothing 同样类型的问题一直在求助的第一页~
对象库、描述性编程强调的最重要的是对象的【唯一性】,通过描述可以唯一找到对象。
唯一的否定,是【不唯一】,包含 【多个】+【0个】,所以你要查找的对象有多个或零个。
这时你将Link的属性写入到一个描述性对象(Description.Create)里,使用Print baidu.childObjects(desc).count 来判断link的个数。多个,则证明你的Link对象需要再添加属性,以确保其唯一性。
0个,则说明你的LINK对象属性描述有错误。
仔细一看,没错啊,那么你就需要查看baidu.exist 是否存在,print一下,发现这个对象不存在,再分析,如此循环反复,明白?
你错误的原因就是同时存在多个浏览器 回复 2# xjwldlover
非常感谢 本帖最后由 黑羽祭 于 2012-12-7 09:51 编辑
回复 1# xuewanju
诶?
这个问题昨天发过我邮箱吧。
其实用SPY点下百度页面上的新闻链接,就会发现问题原因了。
页面上并没有“新闻”,只有“新 闻”(中间有个空格)
so:
加个空格:
print baidu.link("name:=新 闻").Exist
就OK了。
XP_SP3 IE8(8.0.6001.18702)QTP11显示无空格 回复 4# 黑羽祭
是的,经过你的指点,程序已经运行成功了,确实是空格的问题。 回复 5# xjwldlover
纳尼?还有这事? xjwldlover 发表于 2012-12-6 11:23
同样类型的问题一直在求助的第一页~
对象库、描述性编程强调的最重要的是对象的【唯一性】,通过描述可以 ...
我也遇到同样的问题了,按照你说的调试方法试了一下,Print baidu.childObjects(desc).count输出link的个数是2,但百度首页上就一个新闻link啊,而且我就开了一个浏览器,搞不懂什么原因了,所以请教一下
PS:QTP版本11.5,浏览器版本IE11,现在百度首页是新版的,不是旧版的了,但这应该不影响结果吧?
页:
[1]