51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 21501|回复: 66
打印 上一主题 下一主题

[你问我来答第29期]:QTP录制过程中对象未识别的处理办法(已结束)

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2012-12-3 10:33:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式


    论坛ID:Jack_loo
    真实姓名:陆小刚
    擅长技术领域:测试管理、QTP
    现任公司:上海博为峰软件技术有限公司
    现任职位:高级讲师
    工作经验:12年
    主题:QTP录制过程中对象未识别的处理办法
    项目经验:LIVAX拍卖网站,IDASS三角银行网上银行系统,上海理想集团SAP项目,上海移动TD-BOSS系统

    各位会员可以在12月10日前以回帖的方式向客座专家提问。

    (请大家围绕本期客座专家的擅长领域进行提问、探讨)

    客座专家将在12月11日—12月31日为大家集中解答。

    机会难得,欢迎大家踊跃提问!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    67#
    发表于 2013-1-1 19:30:27 | 只看该作者
    两个下拉框,第二个下拉框的内容由第一个下拉框输入值决定,如第一个下拉框输入2,第二个下拉框只能输入0,1,2。如第一个下拉框输入4,第二个下拉框只能输入0,1,2,3,4。在选择第一个下拉框的时候,系统会运行一段脚本,获取到第二个下拉框可输入项。使用QTP录制脚本,运行到第2条报错,原因是第二个框找不到值2.这种情况应该怎么解决?
    Browser("XXXXXXX").Page("XXXXXX").Frame("Frame").ListEdit("第一个框").Select(4)
    Browser("XXXXXXX").Page("XXXXXX").Frame("Frame").ListEdit("第一个框").Select(2)
    (在中间等待足够长的时间也不行)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    66#
    发表于 2012-12-31 11:02:04 | 只看该作者
    本帖最后由 zhilingying 于 2012-12-31 11:03 编辑

    专家你好,赶在12月的最后一天发帖,期待您的回复:
    1)运行脚本的时候,经常会碰到提示我对象无法识别的错误,但是针对同一个脚本,不是每次都会有这个报错,有时候能运行成功,不知道专家有没有碰到过,是怎么解决这个问题的呢?(有时无法识别的对象是:webedit)
    2)我们产品有个写信的功能,在收件人的文本框(webedit)中,支持输入简码,按回车键自动带出收件人全名,我是这样写的:
    Set wsh=CreateObject("WScript.Shell")
    Browser("浏览器").Page("页面").Frame("leftFrame").WebElement("写信").Click
    Browser("写信").Page("写信").WebEdit("简码").Set "zzz"
    Browser("写信").Page("写信").WebEdit("简码").Click
    wsh.SendKeys "{Enter}"
    wait 1
    运行不报错,但是每次都无法带出收件人全名,之前在同事机子上也这么操作,但是可以成功运行,不知道是怎么回事呢?专家帮我看看啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    65#
    发表于 2012-12-28 14:40:55 | 只看该作者
    您好,我想请问一下如何设置能让QC10导出的缺陷报告只有我想要的字段名?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-4-15 09:53
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    64#
    发表于 2012-12-28 09:51:28 | 只看该作者
    为什么点击qtp录制,他打开IE,但是什么也没有显示,就是一片空白,我输入网址也没有用,请求高手回答啊,这个问题纠结了好久啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-6-11 16:01
  • 签到天数: 131 天

    连续签到: 1 天

    [LV.7]测试师长

    63#
    发表于 2012-12-25 10:07:00 | 只看该作者
    支持之后再看贴!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    62#
    发表于 2012-12-21 14:03:31 | 只看该作者
    回63楼:

    是的呀,由于它是动态生成,所以无论你如何预先加对象库,运行时总是错的。

    对于动态变化属性的对象,我们的做法本质上有2条,一是用spy找出这个对象一些不变的属性,这些属性可以唯一识别对象,二是调用对象前先修改对象库中对象的属性值,使之与运行对象的属性值相同,然后再使用这个对象。

    举例:
    1. 如果发现WinObject("Afx")有3个属性,其中2个属性不变,winndow id这个属性每次都变化,那就把window id这个属性删除,但发现删除后无法唯一识别,再加属性,我们发现,加上属性值不变的rexpwndtitle属性后可以唯一识别对象。

    2. 如果发现WinObject("Afx")的text属性每次都发生变化,但我知道它是如何变的,比如是“abc_”后面跟着一个从"c:\receive\common\abc.config.xml"文件中读取的字符串,那么我就在执行Dialog("SNTClient").WinObject("Afx")之前加一段脚本:
    Dialog("SNTClient").WinObject("Afx").setToProperty "text" "abc_"&一个读取字符串的自定义的函数
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    61#
    发表于 2012-12-21 10:48:00 | 只看该作者
    回复 62# jack_loo

        我都把上面截图部分(也就是播放视频的窗体及左侧的相机都加入了对象库中,还是报这个错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    60#
    发表于 2012-12-20 20:55:31 | 只看该作者
    回61楼:
    WinObject("Afx:00400000:b:00010011:1F1016")中WinObject说明对象类型未知,被默认为WinObject类型,报错说无法识别这个对象,估计最大可能是对象的hwnd属性动态生成,你需要调整你对想哭中对象的属性来使得你的对象库能找到对象。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    59#
    发表于 2012-12-20 16:25:01 | 只看该作者
    本帖最后由 chenmin4767 于 2012-12-20 16:26 编辑

    我是QTP新手,有问题请教楼主。我现在用QTP录制的CS软件,图片是界面的一部分。左侧有个树状列表,右侧是看视频的浏览框,我在回放脚本时老提示这个错误(第28行报错):
    ,,



    具体代码如下:

    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_3").Type "192"
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_4").Check CheckPoint("Edit_4")
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_4").Type ".168"
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_5").Check CheckPoint("Edit_5")
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_5").Type "16"
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_6").Check CheckPoint("Edit_6")
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_6").Set "234"
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_6").Type  micTab
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_7").Check CheckPoint("Edit_7")
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_7").Type "10098"
    Dialog("SNTClient").Dialog("#32770").WinEdit("Edit_7").Set "10098"
    Dialog("SNTClient").Dialog("#32770").WinButton("Button").Check CheckPoint("Button_2")
    Dialog("SNTClient").Dialog("#32770").WinButton("Button").Click
    Dialog("SNTClient").WinTreeView("SysTreeView32").Expand "最大级"
    Dialog("SNTClient").WinToolbar("ToolbarWindow32").Press 2
    Dialog("SNTClient").WinTreeView("SysTreeView32").Expand "最大级;其它相机"
    Dialog("SNTClient").WinTreeView("SysTreeView32").DragItem "最大级;其它相机;castel1相机0"
    Dialog("SNTClient").WinObject("Afx:00400000:b:00010011:1F1016").Drop 136,105
    Dialog("SNTClient").WinTreeView("SysTreeView32").DragItem "最大级;其它相机;朗驰相机0"
    Dialog("SNTClient").WinObject("Afx:00400000:b:00010011:0A1009").Drop 153,91
    Dialog("SNTClient").WinTreeView("SysTreeView32").DragItem "最大级;其它相机;黄河球机1相机0"
    Dialog("SNTClient").WinObject("Afx:00400000:b:00010011:A5101B").Drop 57,62
    Dialog("SNTClient").WinTreeView("SysTreeView32").DragItem "最大级;其它相机;黄河球机2相机0"

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    58#
    发表于 2012-12-20 16:19:37 | 只看该作者
    回59楼:
    这个webElement是你录制出来的,还是你手写出来的?

    脚本可以执行但没有弹出窗口,说明这个webElement的click方法无效。

    你用spy看一看页面上的“添加文件”对象,然后用查看元素的工具看一看,这个对象到底是什么,会不会是个flash控件?如果是flash控件,请先控制浏览器窗口的大小和位置,最简单做法就是最大化,然后采用模拟录制。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    57#
    发表于 2012-12-20 16:08:33 | 只看该作者
    Browser("XXX规划设计有限公司").Page("XXX规划设计有限公司").Frame("mapFrame").WebElement("添加文件").Click
    录制脚本时点击“添加文件”,弹出窗口选择要上传的文件路径,但是回放的是脚本可以运行,却没有弹出窗口,也没有看到有点击“添加文件”,这是怎么回事啊??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    56#
    发表于 2012-12-20 09:39:50 | 只看该作者
    本帖最后由 jack_loo 于 2012-12-20 09:56 编辑

    回56楼:

    我建议你把这个事情做起来,遇到问题了,我们一起来探讨,这是一个非常有意义、对自己帮助非常大的工作。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    55#
    发表于 2012-12-20 09:39:41 | 只看该作者
    回56楼:

    这是一个软件测试新人经常感到困惑的问题——看了理论后怎么用于实际运用。如果公司里的流程规范导致一些事情不会被做到,那就自己找事情来做吧。

    打个比方,你买的手机,盒子里面有手机说明书,这是一个用户手册,同时你也可以近似的把它看成是需求规格说明书,对这份需求规格说明书,你自己想想,如何制定系统测试计划和方案?需要做哪些类型的测试,功能测试、压力测试、容量测试、容错测试、手机操作系统和软件的安装测试、配置测试、可移植性测试?等等,对每个类型的测试如何编写测试案例?你会发现你有很多工作要做。等你把这些工作都罗列出来,评估工作量后,你会发现你还需要丰富你的测试计划,排列工作顺序等。

    只要有心,生活中无处不测试。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    54#
    发表于 2012-12-19 16:50:59 | 只看该作者
    老师你好,问的问题可能和这期主题没关系,见谅。

    现在刚开始做软件测试,才看完《软件测试的艺术》一书,其中很多都是理论型的东西,看完后在网上找了一些黑盒测试的实例做了做,等看答案的时候发现自己想到的实例很少,现在公司也没人带着做一些测试工作,仅仅一味的看书效果又不好,现在这种状况应该怎么办?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    53#
    发表于 2012-12-18 15:10:38 | 只看该作者
    回53楼:

    你要知道原因,就需要看网页的源代码,建议你用工具来看网页元素,比如ie的httpwatch,我习惯用chrome的审查元素。

    我估计,这个select是由一个空select,一个webedit和一个div组成的,所以你出现了点在select上则录制到一个webedit,点在下拉选项上则录制到了一个webelement的现象。

    你要检查web元素,看看当你选择了一个选项后,是select有选项被选中了还是webedit有值了,一旦这个确定下来了,后面就好办了。如果是select有选项被选中,那就.select "abc",如果不行,就先用outerhtml改写select再选择选项,如果是webedit被赋值,那就.set "abc",如果不行,就.object.innertext="abc"。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    52#
    发表于 2012-12-17 14:33:58 | 只看该作者
    回复 47# jack_loo


        解答很详细,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    51#
    发表于 2012-12-17 14:30:14 | 只看该作者
    本帖最后由 zhilingying 于 2012-12-18 13:45 编辑

    你好!请看下面这个图的下拉框

    如果我录制“选择排序”框,录制为:webedit,录制下拉框内容时为:WebElement,这两个对象值都无法使用click操作,为什么呢?
    我想设计的操作是:选中下拉框中“选择排序”后的第一条记录,请专家指点该怎么做呢?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    50#
    发表于 2012-12-16 17:14:08 | 只看该作者
    回复 50# jack_loo


        我的qtp版本是10的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 01:25 , Processed in 0.184074 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表