51Testing软件测试论坛

标题: 总是提示对象不匹配,咋办啊? [打印本页]

作者: catherinepan    时间: 2008-7-16 08:58
标题: 总是提示对象不匹配,咋办啊?
刚开始学习QTP,做了一个总是不识别对象,总是报错,错误如下:
Cannot identify the object "arrPort" (of class WebList). Verify that this object's properties match an object currently displayed in your application
我的代码如下:
Browser("销售系统").Page("销售系统").WebEdit("userid").Set "cos"
Browser("销售系统").Page("销售系统").WebEdit("passwd").SetSecure "486839179f66dc99"
Browser("销售系统").Page("销售系统").Link("登 录").Click
Browser("销售系统").Page("网上销售系统").Frame("menu").Link("国际客票").Click
Browser("销售系统").Page("网上销售系统").Frame("menu").Link("在线预定").Click
Browser("销售系统").Page("网上销售系统").Frame("main").WebRadioGroup("flightType").Select "1"
Browser("销售系统").Page("网上销售系统").Frame("main").weblist("depPort").Select"Guang zhou  广州"
Browser("销售系统").Page("网上销售系统").Frame("main").weblist("arrPort").Select"BANGKOK 曼谷"
Browser("销售系统").Page("网上销售系统").Frame("main").Image("calendar").Click
Page("Page").WebElement("<<").Click
Browser("销售系统").Page("网上销售系统").Frame("main").Link("散客订票").Click
Browser("销售系统").Page("网上销售系统").Frame("main_2").WebRadioGroup("cb_type").Select "citytime_cb1"
Browser("销售系统").Page("网上销售系统").Frame("main_2").WebList("Select1").Select"Guang zhou 广州"
Browser("销售系统").Page("网上销售系统").Frame("main_2").WebList("Select1_2").Select"BANGKOK 曼谷"
Browser("销售系统").Page("网上销售系统").Frame("main_2").Image("calendar").Click
Page("Page_2").WebElement("<<").Click
Browser("销售系统").Page("网上销售系统").Frame("main_2").Link("机票查询").Click
Browser("销售系统").Page("网上销售系统").Frame("main_2").WebElement("WebTable").Click
Browser("销售系统").Page("网上销售系统").Frame("main_2").Link("下一步").Click
Browser("销售系统").Page("网上销售系统").Sync
Browser("销售系统").Close
哪位高手可以指导一下啊?
作者: 小孩    时间: 2008-7-16 09:14
你用 SPY 去看这个 weblist("arrPort")对象看里面的属性值跟对象库的是否一直,
作者: 小孩    时间: 2008-7-16 09:17
也可以通过
if Browser("销售系统").Page("网上销售系统").Frame("main").weblist("arrPort").exist(5) then
msgbox "存在,吃糖"
else
msgbox "不存在,吃棒"
end if
看这个对象是否存在,不存在估计就是对象的属性有问题
作者: zte_boy    时间: 2008-7-16 09:29
又是明显的对象问题,ToString一下,看看对象是否获取到了
作者: catherinepan    时间: 2008-7-16 09:36
我把对象属性和SPY的结果都截图在附件了,麻烦再帮我看看需要修改什么吧,谢谢了
作者: zte_boy    时间: 2008-7-16 09:41
从你选择的对象识别属性来看,光arrPort应该是足够识别这个对象了的
你先把这个对象highlight一下试试,看看能不能显示
作者: babyou1st    时间: 2008-7-16 10:52
存在,吃糖;不存在,吃棒!有意思。。。。
HighLight一下,看看对象村不存在应该比较好使,或者会不会你对象库里有多个这个对象了?
作者: catherinepan    时间: 2008-7-16 10:58
是的还有一个对象:depPort是和这个一样的,这个该怎么处理阿?
作者: babyou1st    时间: 2008-7-16 12:01
这个不是了,出发点和到达点是两个不同的对象么,只是他们属于同一类,我的意思是会不会有两个到达机场?比如用_1和_2区分
作者: KateCao    时间: 2008-7-16 15:38
每条语句后加个wait语句,等待个几秒钟,看好不好用。
作者: 雨2008    时间: 2008-7-17 09:51
标题: 我的问题和你差不多
加了Wait语句也没效果,对象不能识别是和插件有很大关系吗?
作者: catherinepan    时间: 2008-7-17 15:28
我HighLight了一下是可以的,但是run还是提示错误,咋办阿?这是个下拉列表,如果我保持默认值,默认值是香港,运行的时候就不会抱错,但是我只要改为下拉列表的别的值比如:曼谷,都会报错,怎么回事呢?
作者: sayusayme    时间: 2008-7-17 17:09
会不会和没有装插件有关系?比如装c#或java的插件
作者: 今天有雾    时间: 2008-7-17 17:14
会不会是你的赋值不正确呢?
作者: zte_boy    时间: 2008-7-17 17:23
你看看你识别对象的属性是不是动态的,看症状象了
作者: 小孩    时间: 2008-7-17 18:41
能录制就代表能识别!如果属性值是动态D 就是用正则表达式
或者 选一些固定D属性而且能唯一识别出这个对象的属性
作者: qicyt1812    时间: 2008-7-19 22:31
用描述性编程试一下呢,如下:

Browser("销售系统").Page("网上销售系统").Frame("main_2").Link("text:=下一步").Click

text是对象库中的属性,下一步 是对应的属性值

可以把鼠标放在Link对象这边,点右键选择 对象库即可
作者: qicyt1812    时间: 2008-7-19 22:31
用描述性编程,确定一个能够唯一识别对象的属性,估计就能通过了
作者: lisilin    时间: 2008-7-28 11:30
关注楼主的解决最终解决方案
作者: catherinepan    时间: 2008-7-28 13:06
我换了一种新增对象的方法,之前是在ACTIVE中增加,后来改为在对象库中增加就没问题了,不知道为啥




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