51Testing软件测试论坛

标题: 用MTM执行报错:对象不支持此属性或方法 [打印本页]

作者: lxs647    时间: 2010-5-27 19:40
标题: 用MTM执行报错:对象不支持此属性或方法
大家好!
我录制好了一个脚本
完了后用QTP回放时测试通过(有时也通不过,时好时坏、、、)
但是放到Multi Test Manager V8.2.4中进行测试的时候总是报错:
Object doesn't support this property or method!!
[attach]62563[/attach]

我的脚本结构如下:
Action
|___Action1
|___Action2
因为在Action1和Action2中Browser("name:="&browserTitle,"Index:=0").Page("title:="&browserTitle)这部分是一样儿的,所以就考虑用一个全局变量browserTitle
来存储这个东东、、、
在Action中有个全局变量:
browserTitle = ".*SAP Business All-in-One.*"
Environment.Value("pageDesc") = Browser("name:="&browserTitle,"Index:=0").Page("title:="&browserTitle)

在Action1中获取该变量:
Set pageDesc = Environment.Value("pageDesc")

那么对应的组件的调用如下:
pageDesc.Link("text:="&acceptText,"Index:=0").Click

Action2中类似!!!

现在通过MTM进行自动回放的时候总是报n多相同的错误:Object doesn't support this property or method!!
其中第一个出错的地方就是在:

Run ErrorObject doesn't support this property or method: 'pageDesc.Link'
Line (18): "pageDesc.Link("text:="&acceptText,"Index:=0").Click".
Failed27/05/2010 - 19:34:24


但是在QTP中执行的时候就可以pass!!!
各位大大给看看是什么原因造成的???
我试图通过放慢它的执行速度,每2000ms(2s)钟执行一步,执行速度倒是慢了下来,但也是不行,为了这么个问题整的我头都大了、、、
各位给看看到底是什么原因引起的!!!!


谢谢5楼的解答、、、
但是现在因为后续几个action中的脚本中Browser("").Page("")这个前面一部分都是一样儿的,
如果每个action中都要这么写的话,势必会很耗时而且也不方便,如果一旦Browser("").Page("")中的对应的名字改变了的话,那么就需要修改每一个地方,维护起来也很不方便,基于这些原因的考虑,所以我才考虑使用一个全局变量将前面一部分存放进一个变量里面!!
按照5楼的说法,那应该怎么做才能够满足我的需求呢???谢谢指点、、、


O(∩_∩)O~谢谢7楼上的回答、、、

这个倒是可以考虑试试O(∩_∩)O~
再次感谢大家这么久的支持、、、O(∩_∩)O~谢谢了、、、

[ 本帖最后由 lxs647 于 2010-6-4 10:49 编辑 ]
作者: skyzhu    时间: 2010-5-28 09:15
Environment 不存对象,试试
作者: TIB    时间: 2010-5-28 10:28
解决方法可尝试:
1、如楼上所说
2、使用Test Batch Runner或QTRunner试试
作者: lxs647    时间: 2010-5-28 14:59
2楼的Environment不存对象(恕我没有怎么理解明白,不好意思O(∩_∩)O~)

是指不要使用全局变量,每一个Action中对应组件的使用还是老老实实的写那么一大串的Browser("name:="&browserTitle,"Index:=0").Page("title:="&browserTitle).*****呢

还是指什么意思??
作者: skyzhu    时间: 2010-5-31 09:33
Environment.Value("pageDesc") = Browser("name:="&browserTitle,"Index:=0").Page("title:="&browserTitle)

这句话你把PAGE对象塞进了环境变量里
环境变量最好只存存字符串什么的,对象、数组最好别放进去,经常会很莫名出错
作者: lxs647    时间: 2010-6-1 15:25
谢谢楼上的解答、、、

但是现在因为后续几个action中的脚本中Browser("").Page("")这个前面一部分都是一样儿的,
如果每个action中都要这么写的话,势必会很耗时而且也不方便,如果一旦Browser("").Page("")中的对应的名字改变了的话,那么就需要修改每一个地方,维护起来也很不方便,基于这些原因的考虑,所以我才考虑使用一个全局变量将前面一部分存放进一个变量里面!!

按照5楼的说法,那应该怎么做才能够满足我的需求呢???谢谢指点、、、
作者: skyzhu    时间: 2010-6-2 09:22
把 browserTitle 放进环境变量里,变的只有这个吧
作者: lxs647    时间: 2010-6-4 10:49
O(∩_∩)O~谢谢7楼上的回答、、、

这个倒是可以考虑试试O(∩_∩)O~
再次感谢大家这么久的支持、、、O(∩_∩)O~谢谢了、、、




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