QTP技术支持之QTP对象无法识别(转自582357212的个人空间,链接:http://www.51testing.com/html/64/305564-847787.html)
QTP自动化测试从业者,或者很多练习使用QTP开发自动化测试代码的人员遇到最多的问题恐怕就是对象无法识别了,对象无法识别原因有很多种,根据经常对QTP自动化测试脚本开发人员的技术Support,我总结了一下对象无法识别问题,并给出了对应的原因分析简要说明,主要分为以下几种:
一,最简单的,但可能不太常遇到的,QTP对被测对像控件识别混乱,甚至无法识别,例如对.net控件识别为Window控件。
常见原因:
1.检查QTP Add-in中的插件选择是否正确,不同被测对象可能需要不同的Add-in插件。
2.一些Application被测程序 插件正确但是仍会无法识别,这时候在自动化运行和设置那个窗口 选择第一个选项,加入被测程序的.exe路径,和其.exe文件所在的文件夹路径,点击运行,通过QTP自己来启动被测程序,这时候你再用对象查看器查看对象已经可以识别了,此设置一般设置一次则可。
3.先打开了被测程序,后打开QTP,在一些特殊情况下 也会导致QTP无法正确的识别出对象,这时候关掉被测程序,使用QTP启动被测程序,即可识别。
二,最常见的,是运行过程中弹出了对象无法识别的错误。
常见原因:
1.最常见的就是被测控件对象在对象库中的属性值和运行时被测程序中的控件对象属性值不匹配,这时候可以选择暂停QTP运行,如果是使用描述性编程,就需要将描述语句中涉及该对象的属性加到Debug View中,然后通过object SPY查看正在运行的被测控件对象属性,两者对比查找出哪个属性不同,为什么不同,最终解决这个问题。如果是使用对象库的,则查看对象库属性窗口中的对象属性object和object SPY查看正在运行的被测控件对象属性进行对比查看哪个属性不同,如果有不同,改正即可。
2.被测对象在被测程序上找到不止一个,那么这时候通过查看代码中对象属性描述或者对象库中对象属性窗口中的属性和object SPY查看正在运行的被测控件对象属性进行对比,会发现两者一致,因此这时候需要加Index属性或者Location属性值来唯一定位对象,或者能找到其它能够唯一识别出对象的属性加进去也可,至于index值为多少或者Location值为多少,则要根据具体对象所在位置进行分析了。
3.被测对象的父亲找不到,无论描述性编程还是对象库,对象的存在都是有层级结构的,它可能会有儿子对象或者父亲对象,如果它是单独存在,即只有一层的对象 那也不会出现这个错误的。但对于大多数有多层级的对象则有可能出现这个错误了,这时候我们需要找到它的父亲对象,对其属性和通过SPY查看正在运行的被测控件对象属性进行对比,最终找到哪个父亲对象是无法识别的,按照1所述解决它。
4.引用了外部对象库,这时候你可能发现什么都正确,但对象仍是无法识别,这个问题是要检查本地对象库和被引用的对象库,是否是本地对象库扔保留着,但其部分对象属性已经改变,在引用外部对象库后,是否添加过对象到对象库中,QTP在你添加对象到对象库中时,会默认添加到本地对象库中,而不会将其放到引用的外部对象库中。最后确认下对象库引用到哪个Action,是否真的正确引用进来,通过这些检查,你自然就发现问题了,解决方案也就多种多样可以随便选了
三,就是第三方控件无法识别问题了,这个问题很容易发现,但不容易解决,很多常见解决方案是通过坐标来定位对象,但是这个方法平台移植性差,协同开发脚本稳定性差,因此一般会采用其它方案,具体使用什么方案,那就得根据团队手头资源,测试计划,自动化编码人员水平等综合考虑制定了。实在不行可以跟开发协调使用其它对象,或者直接考虑该部分不实现自动化,如果功能块独立 涉及的测试用例也不多可以考虑直接将这块功能点舍弃,不实现自动化,仍由手工执行。
当然对象识别也还有一些特殊情况,需要自己Debug分析,例如一些QTP开发环境问题,QTP版本问题,公共对象使用管理不当问题,等等,这都需要根据具体情况具体分析。
QTP技术支持之QTP对象无法识别(转自582357212的个人空间,链接:http://www.51testing.com/html/64/305564-847787.html)的更多相关文章
- QTP自传之web常用对象
随着科技的进步,“下载-安装-运行”这经典的三步曲已离我们远去.web应用的高速发展,改变了我们的思维和生活习惯,同时也使web方面的自动化测试越来越重要.今天,介绍一下我对web对象的识别,为以后的 ...
- CSS判断不同分辨率显示不同宽度布局CSS3技术支持IE6到IE8
CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8.将用到css3 @media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给大家介绍通过JS ...
- Unity技术支持团队性能优化经验分享
https://mp.weixin.qq.com/s?__biz=MzU5MjQ1NTEwOA==&mid=2247490321&idx=1&sn=f9f34407ee5c5d ...
- 达梦产品技术支持培训-day7-DM8数据库备份与还原-原理
(本文部分内容摘自DM产品技术支持培训文档,如需要更详细的文档,请查询官方操作手册,谢谢) 1.DM8备份还原简介 1.1.基本概念 (1)表空间与数据文件 ▷ DM8表空间类型: ▷ SYSTEM ...
- 招聘 微软全球技术支持中心 sql server组
微软亚太区全球技术支持中心(APGC CSS)是微软为个人用户.开发者.IT 专业人员到合作伙伴和企业级合作伙伴提供全方位.多元化的服务和技术支持的部门.一个优秀的SQL Server技术支持工程师应 ...
- Win7 远程桌面 错误代码:5 异常处理(您的远程桌面会话即将结束 此计算机的虚拟内存可能不足。请关闭其他程序,然后重试连接远程计算机。如果问题仍然存在,请联系网络管理员或技术支持。)
问题表现: 在用windows7 远程桌面连接其他电脑时,出现错误提示对话框—-标题为“严重错误(错误代码:5)”,内容为“您的远程桌面会话即将结束 此计算机的虚拟内存可能不足.请关闭其他程序,然后重 ...
- Dynamic CRM 2013学习笔记(四十四)CRM技术支持
有时我们经常遇到一些CRM的问题,一时又无法解决,这时我们可能要找下外援,下面列出一些基本的技术支持. 1. CRM 论坛 https://community.dynamics.com/crm/f ...
- BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象
http://www.w3help.org/zh-cn/causes/BX2001 标准参考 无 问题描述 IE 支持使用 window.clipboardData 对象内的一系列方法访问系统剪贴板: ...
- 启用VTX技术支持启动android的虚拟机 - 报错
第一次启用VTX技术支持启动android的虚拟机,启动时提示如下错误: Starting emulator for AVD 'AVD_for_Android_TV_1080p_by_Google'e ...
随机推荐
- 03.AutoMapper 之反向映射与逆向扁平化(Reverse Mapping and Unflattening)
https://www.jianshu.com/p/d72400b337e0 AutoMapper现在支持更丰富的反向映射支持. 假设有以下实体: public class Order { publi ...
- es6 generator函数的异步编程
es6 generator函数,我们都知道asycn和await是generator函数的语法糖,那么genertaor怎么样才能实现asycn和await的功能呢? 1.thunk函数 将函数 ...
- 6号板编译失败找不到arm-none-linux-gnueabi-gcc
明明已经添加到/etc/environment 安装sudo apt-get install lib32z1 lib32ncurses5
- git push -u origin master和git push <远程主机名> <本地分支名>:<远程分支名>作用
git push git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分支名>:< ...
- Introduction of Generator in Python
Python中生成器的原理与使用详解 原创牛大财有大才 发布于2018-09-05 14:36:38 0.range() 函数,其功能是创建一个整数列表,一般用在 for 循环中 语法格式:range ...
- reverse/inverse a mapping but with multiple values for each key
reverse/inverse a mapping but with multiple values for each key multi mappping dictionary , reverse/ ...
- 第八周作业—N42-虚怀若谷
一.显示统计占用系统内存最多的进程,并排序 [root@centos7 ~]# ps -eo uid,pid,ppid,tty,c,time,cmd,%mem --sort=-%mem UID PID ...
- react native 实现TODO APP
前端有一个todo app非常适合入门练手 react-native 实现todo app:https://github.com/nwgdegitHub/TODO_RN.git
- Bugku web web2
web2 打开后发现是个大滑稽啊!F12检查元素拿到flag
- 可用来修改bean对象的BeanPostProcessor
可用来修改bean对象的BeanPostProcessor 11.1 简介 BeanPostProcessor是Spring中定义的一个接口,其与之前介绍的InitializingBean和Dispo ...