查看完整版本: 总是提示对象不匹配,咋办啊?

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

:lol 能录制就代表能识别!如果属性值是动态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中增加,后来改为在对象库中增加就没问题了,不知道为啥
页: [1]
查看完整版本: 总是提示对象不匹配,咋办啊?