51Testing软件测试论坛

标题: 新手紧急求助,关于QTP录制时控件无法识别问题。 [打印本页]

作者: jinwei6078    时间: 2011-4-28 19:23
标题: 新手紧急求助,关于QTP录制时控件无法识别问题。
录制一个类似工资系统,代码如下:
Browser("eHR 用户登录").Page("eHR 用户登录").WebEdit("loginName").Set "hedy"
Browser("eHR 用户登录").Page("eHR 用户登录").WebEdit("loginPwd").SetSecure "4db9003038b3836b252c55ea98b4f0371f78"
Browser("eHR 用户登录").Page("eHR 用户登录").WebButton("登   录").Click
wait(5)
Browser("eHR 用户登录").Page("XX件有限公司").Link("人事管理").Click
wait(10)
Browser("eHR 用户登录").Page("XX件有限公司_2").Link("员工管理").Click
wait(20)
Browser("eHR 用户登录").Page("XX有限公司_2").Frame("jerichotabiframe_submenu19").WebButton("新增").Click
wait(5)
Browser("eHR 用户登录").Window("新增员工 -- 网页对话框").Page("新增员工").WebButton("关闭").Click
Browser("eHR 用户登录").Page("XX有限公司_2").Image("退出").Click
Browser("eHR 用户登录").Dialog("Windows Internet Explorer").WinButton("确定").Click
--------
报错页面
[attach]72806[/attach]

加入调试发现:
Msgbox Browser("eHR 用户登录").Page("XX有限公司_2").Frame("jerichotabiframe_submenu19").exit
这里弹出 false
说找不到Frame("jerichotabiframe_submenu19").但是keyview页面上有的。
[attach]72807[/attach]
系统的主框架如下:点上方菜单,左方出现二级菜单,每个二级下面有三级菜单。
[attach]72808[/attach]

如果不点员工管理页面上的新增按钮,录制就不会出错,现在录制回放后出错,怎么也查不出哪里错了。

关于网上说的几种方法,都试过了。

高手帮看下我这个录制哪里错了呢:?
作者: jinwei6078    时间: 2011-4-28 19:24
出错的如下:[attach]72809[/attach]
作者: jinwei6078    时间: 2011-4-28 19:26
总提示找不到:
Browser("eHR 用户登录").Page("广州市科特杰软件有限公司_2").Frame("jerichotabiframe_submenu19").WebButton("新增").Click
这个对象的("jerichotabiframe_submenu19") Frame


怎么回事啊。急!
作者: 62369432    时间: 2011-4-28 19:55
可能Frame("jerichotabiframe_submenu19")是动态的. 下次打开不一定是 19 所以系统可能找不到对象
作者: shanfeng1419    时间: 2011-4-29 09:16
我觉得是不是frame控件没识别出来?其他的控件如link,webedit等都能识别对,但是Frame("jerichotabiframe_submenu19")没有识别出来,可能跟编程语言,技术有关?
作者: wugecat    时间: 2011-4-29 09:45
原因是用来识别frame的属性,是动态变化的,导致了下一次识别不到,你可以到对象库中查看一下是哪一个属性变化了,比如 html id是变化的你可以用正则表达式将动态的部分替换如jerichotabiframe_submenu19替换成
jerichotabiframe_submenu.*就可以了,还有一种方法是选择不会变的属性识别
作者: jinwei6078    时间: 2011-4-29 10:32
回复 4# 62369432

已录制过好几次了,都是这个名称。没有变化
作者: jinwei6078    时间: 2011-4-29 10:33
回复 5# shanfeng1419

这个FRAME 是识别不出来。
不知为什么?
作者: jinwei6078    时间: 2011-4-29 10:48
回复 6# wugecat

在吗?
原因是用来识别frame的属性,是动态变化的,导致了下一次识别不到,你可以到对象库中查看一下是哪一个属性变化了,比如 html id是变化的你可以用正则表达式将动态的部分替换如jerichotabiframe_submenu19替换成
jerichotabiframe_submenu.*就可以了,还有一种方法是选择不会变的属性识别
-------我查看了,这个Frame的ID,name都是jerichotabiframe_submenu19这个名称。录了几次都没有变化的。我问了开发人员,这个名称的确是动态生成的。但是录制过程中是不会变化的,我要怎么做呢,能否提示一下?
作者: jinwei6078    时间: 2011-4-29 11:14
怎么没有回答啊,紧急求助。这个问题卡在这里几天了。高手提示一下啊
作者: jinwei6078    时间: 2011-4-29 11:35
我录制其它如论坛,网页都没有问题,可能是我们系统框架不同于别的系统的原因。架构是.net 语言的。
作者: renquande    时间: 2011-4-29 11:35
仔细查看一下对象库中和脚本中的层级关系对不对
就是找不到对象(对象库和脚本中不一致导致的),或者在之前已经弹出了多余的界面,建议通过打断点的方式一步步查找,有可能在前面已经报错,结合业务考虑
作者: wugecat    时间: 2011-4-29 13:33
截个图,把那个frame的对象库那些用来识别的属性贴上来看看
作者: jinwei6078    时间: 2011-5-1 22:46
本帖最后由 jinwei6078 于 2011-5-1 23:19 编辑

[attach]72830[/attach][attach]72829[/attach][attach]72826[/attach]回复 13# wugecat [attach]72828[/attach]
作者: jinwei6078    时间: 2011-5-1 22:51
回复 13# wugecat

对象库object repository 截图中关于jerichotabiframe_submenu19 ,这个的属性列表中只有关于name的值,没有ID的。点上面那个绿色的+,是不是可以添加ID的值进来啊,这个+里面的操作是什么意思呢?

谢谢帮忙做答!
作者: zhongmiao88    时间: 2011-5-2 08:07
luguo.........
作者: jinwei6078    时间: 2011-5-2 21:30
自己UP一下,高手帮看一下啊
作者: shanfeng1419    时间: 2011-5-3 10:56
你好LZ,Frame没识别出来,我估计也许是编程控件的问题,是不是你录制“查询”,“编辑”,“查看”按钮也识别成jerichotabiframe_submenu19?具体怎么解决,我现在还说不清楚,安装插件或是怎么样的。
作者: xjy0791    时间: 2011-5-3 11:29
LZ,我个人感觉是不是前面已经出错了,但是报错却在这里,建议射一步一步执行看看,或者检查一下前面的脚本呢?
作者: xjy0791    时间: 2011-5-3 11:33
我想如果真识别不到的话,能不能通过手动添加呢?LZ试试?
作者: jinwei6078    时间: 2011-5-3 16:04
谢谢各位,问题已经解决了,原来是iframe这个框内部内容太多,没有加载完全的原因。今天再试一下,把点击左菜单员工管理后,页面停止在那里,然后再点录制,点击新增员工按钮,回放成功了。
http://bbs.51testing.com/thread-188338-1-1.html
看的这个贴子,受了点启发。呵呵。可能是跟版本有关,我用的是QTP9.2
作者: 51jack李    时间: 2011-5-4 13:31
新人求解:
在公司装QTP10.0 **版啊会涉及版权什么的?
大家是在自己电脑装的还是在公司装QTP啊?




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