jinwei6078 发表于 2011-4-28 19:23:12

新手紧急求助,关于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
--------
报错页面


加入调试发现:
Msgbox Browser("eHR 用户登录").Page("XX有限公司_2").Frame("jerichotabiframe_submenu19").exit
这里弹出 false
说找不到Frame("jerichotabiframe_submenu19").但是keyview页面上有的。

系统的主框架如下:点上方菜单,左方出现二级菜单,每个二级下面有三级菜单。


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

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

高手帮看下我这个录制哪里错了呢:?

jinwei6078 发表于 2011-4-28 19:24:30

出错的如下:

jinwei6078 发表于 2011-4-28 19:26:20

总提示找不到:
Browser("eHR 用户登录").Page("广州市科特杰软件有限公司_2").Frame("jerichotabiframe_submenu19").WebButton("新增").Click
这个对象的("jerichotabiframe_submenu19") Frame


怎么回事啊。急!

62369432 发表于 2011-4-28 19:55:44

可能Frame("jerichotabiframe_submenu19")是动态的. 下次打开不一定是 19 所以系统可能找不到对象

shanfeng1419 发表于 2011-4-29 09:16:28

我觉得是不是frame控件没识别出来?其他的控件如link,webedit等都能识别对,但是Frame("jerichotabiframe_submenu19")没有识别出来,可能跟编程语言,技术有关?

wugecat 发表于 2011-4-29 09:45:06

原因是用来识别frame的属性,是动态变化的,导致了下一次识别不到,你可以到对象库中查看一下是哪一个属性变化了,比如 html id是变化的你可以用正则表达式将动态的部分替换如jerichotabiframe_submenu19替换成
jerichotabiframe_submenu.*就可以了,还有一种方法是选择不会变的属性识别

jinwei6078 发表于 2011-4-29 10:32:31

回复 4# 62369432

已录制过好几次了,都是这个名称。没有变化

jinwei6078 发表于 2011-4-29 10:33:15

回复 5# shanfeng1419

这个FRAME 是识别不出来。
不知为什么?

jinwei6078 发表于 2011-4-29 10:48:56

回复 6# wugecat

在吗?
原因是用来识别frame的属性,是动态变化的,导致了下一次识别不到,你可以到对象库中查看一下是哪一个属性变化了,比如 html id是变化的你可以用正则表达式将动态的部分替换如jerichotabiframe_submenu19替换成
jerichotabiframe_submenu.*就可以了,还有一种方法是选择不会变的属性识别
-------我查看了,这个Frame的ID,name都是jerichotabiframe_submenu19这个名称。录了几次都没有变化的。我问了开发人员,这个名称的确是动态生成的。但是录制过程中是不会变化的,我要怎么做呢,能否提示一下?

jinwei6078 发表于 2011-4-29 11:14:32

怎么没有回答啊,紧急求助。这个问题卡在这里几天了。高手提示一下啊

jinwei6078 发表于 2011-4-29 11:35:02

我录制其它如论坛,网页都没有问题,可能是我们系统框架不同于别的系统的原因。架构是.net 语言的。

renquande 发表于 2011-4-29 11:35:58

仔细查看一下对象库中和脚本中的层级关系对不对
就是找不到对象(对象库和脚本中不一致导致的),或者在之前已经弹出了多余的界面,建议通过打断点的方式一步步查找,有可能在前面已经报错,结合业务考虑

wugecat 发表于 2011-4-29 13:33:47

截个图,把那个frame的对象库那些用来识别的属性贴上来看看

jinwei6078 发表于 2011-5-1 22:46:55

本帖最后由 jinwei6078 于 2011-5-1 23:19 编辑

回复 13# wugecat

jinwei6078 发表于 2011-5-1 22:51:20

回复 13# wugecat

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

谢谢帮忙做答!

zhongmiao88 发表于 2011-5-2 08:07:06

luguo.........

jinwei6078 发表于 2011-5-2 21:30:01

自己UP一下,高手帮看一下啊

shanfeng1419 发表于 2011-5-3 10:56:58

你好LZ,Frame没识别出来,我估计也许是编程控件的问题,是不是你录制“查询”,“编辑”,“查看”按钮也识别成jerichotabiframe_submenu19?具体怎么解决,我现在还说不清楚,安装插件或是怎么样的。

xjy0791 发表于 2011-5-3 11:29:02

LZ,我个人感觉是不是前面已经出错了,但是报错却在这里,建议射一步一步执行看看,或者检查一下前面的脚本呢?

xjy0791 发表于 2011-5-3 11:33:41

我想如果真识别不到的话,能不能通过手动添加呢?LZ试试?
页: [1] 2
查看完整版本: 新手紧急求助,关于QTP录制时控件无法识别问题。