hollyecho 发表于 2009-2-27 10:00:18

代码中使用SPY得出的OBJECT属性,报错

见下图,SPY获取列表的表头“时间段编号”的属性,然后加入脚本,执行时说“OBJECT WAS NOT FOUND”
为什么会这样呢?

dreamever 发表于 2009-2-27 10:19:42

你用的不是描述性编程,所以那段脚本运行的时候要求在测试对象地图中必须有这个测试对象存在。你的描述里只说用SPY识别然后加入脚本,不知道你是不是在测试对象库中添加了测试对象了呢?

风雪夜归人 发表于 2009-2-27 10:21:03

没错,你是察看到了属性,但是你应该是没有录制,直接使用的,如果你想这样使用的话,要录制下,将其加入对象库。。或者描述性编程。
msgbox Browser("系统登陆入口").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebTable("html tag:=DIV","innerhtml:=时间段编号").exist

如果你转换到关键字视图的话,你会发现webtable 是个问号,意思就是在对象库中不存在这样的对象,你点击那个问号,选择"object from ..."这个选项,然后再用弹出界面里面的手型spy选择,就将你想要得对象加入对象库了,这个时候,可以直接用

hollyecho 发表于 2009-2-27 11:23:59

使用SPY插入对象库,查看脚本,也是显示以下的内容:

Browser("系统登录入口").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebElement("时间段编号").Click

还是没有WebTable的,,,,

用这个描述性编程:
msgbox Browser("系统登陆入口").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebTable("html tag:=DIV","innerhtml:=时间段编号").exist

打印出false

还是不知道怎么解决才好

dreamever 发表于 2009-2-27 11:41:42

我就晕死,你脚本中的顺序和对象库中的顺序完全不一样,你脚本中第一个父对象是"Browser("系统登录入口"),但是在你的测试对象库中根本没有这样的一个对象。你不妨改成这样试一下:
msgbox Browser("顺丰速运客户核心业务系统").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebTable("html tag:=DIV","innerhtml:=时间段编号").exist

hollyecho 发表于 2009-2-27 11:49:43

注意一下我上面说的哦:


用这个描述性编程:
msgbox Browser("系统登陆入口").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebTable("html tag:=DIV","innerhtml:=时间段编号").exist

打印出false

hollyecho 发表于 2009-2-27 11:52:33

脚本中的顺序和对象库中的顺序完全不一样??

从哪里看出来的呢?

没这个对象啊 : Browser("顺丰速运客户核心业务系统")

N多个问号。。。。???????

dreamever 发表于 2009-2-27 11:56:25

测试对象库中有Browser("系统登陆入口")这个对象吗?
我记得QTP里就算用描述性编程,也要保证脚本中对象的层次结构和测试对象库中的结构必须一致吧?

danmy 发表于 2009-2-27 11:59:01

楼主你先录制一遍,把录制的这个操作的脚本贴上来

danmy 发表于 2009-2-27 11:59:38

原帖由 dreamever 于 2009-2-27 11:56 发表 http://bbs.51testing.com/images/common/back.gif
测试对象库中有Browser("系统登陆入口")这个对象吗?
我记得QTP里就算用描述性编程,也要保证脚本中对象的层次结构和测试对象库中的结构必须一致吧?
每层都是描述性,就无所谓了

dreamever 发表于 2009-2-27 12:02:03

原帖由 danmy 于 2009-2-27 11:59 发表 http://bbs.51testing.com/images/common/back.gif

每层都是描述性,就无所谓了
楼主的脚本中只有子对象是描述性编程,父对象不是,所以我才觉得问题可能出在父对象上。

风雪夜归人 发表于 2009-2-27 12:18:52

楼主,你看下你spy取对象时候的截图嘛,Browser("顺丰速运客户核心业务系统")是这个对象,而不是Browser("系统登陆入口")这个,要不就是全部用描述性编程,要不就是你用spy加将那个webtable 加进对象库
Browser("title:=xxx","hwnd:=xxx").Page(描述).webtable(xxxx).exist
注意,如果父对象是用描述性编程的话,子对象都要用描述性编程。

hollyecho 发表于 2009-2-27 13:29:17

Browser("系统登录入口").Page("系统登录入口").WebEdit("username").Set "guangzhouqubu"
Browser("系统登录入口").Page("系统登录入口").WebEdit("password").SetSecure "49a8589c18dbddff"
Browser("系统登录入口").Page("系统登录入口").WebEdit("password").Submit
Browser("系统登录入口").Page("顺丰速运客户核心业务系统").Frame("topFrame2").WebElement("space").Click
Browser("系统登录入口").Page("顺丰速运客户核心业务系统").Frame("ltbfrm").WebElement("ltb_list_i").Click
Browser("系统登录入口").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").Image("ft_txt").FireEvent "onmouseover"
Browser("系统登录入口").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").Image("ft_txt").Click
Browser("查看时间段及分段").Page("查看时间段及分段").Link("关闭").Click
Browser("系统登录入口").Page("顺丰速运客户核心业务系统").Frame("topFrame").Link("注销").Click

hollyecho 发表于 2009-2-27 13:34:00

keyword view的截图

hollyecho 发表于 2009-2-27 13:37:08

系统界面,呃,,,鉴于所谓的商业保密,屏蔽了多余的菜单功能,汗~~~~

hollyecho 发表于 2009-2-27 13:40:05

1)keyword view中选择ftmfrm,下拉框选择object from repository,
得出的界面

hollyecho 发表于 2009-2-27 13:42:50

使用SPY工具捕获对象

hollyecho 发表于 2009-2-27 13:43:39

捕获对象后的keyword view界面

hollyecho 发表于 2009-2-27 13:44:05

这个是插入对象后,脚本显示的语句

Browser("顺丰速运客户核心业务系统").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebElement("时间段编号").Click

hollyecho 发表于 2009-2-27 13:46:00

疑问:
1)为什么插入对象后,browser("")改变了?
2)为什么SPY明明捕获到有webtable,但脚本中写
Browser("顺丰速运客户核心业务系统").Page("顺丰速运客户核心业务系统").Frame("rtmfrm").WebTable("时间段编号").WebElement("时间段编号").exist
却报找不到对象?
页: [1] 2
查看完整版本: 代码中使用SPY得出的OBJECT属性,报错