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 ...
随机推荐
- GridView做加
原文:http://www.cnblogs.com/insus/archive/2012/09/22/2697862.html 下面是Insus.NET实现演示: CObj.cs代码: using S ...
- ThinkPHP关联模型如何关联非主键
ThinkPHP关联模型默认是主键外键关联 官方并没有提供相关文档 如何实现非主键与非主键间之间的关联 <?php namespace Admin\Model; use Think\Model\ ...
- python 查询Neo4j多节点的多层关系
需求:查询出满足3人及3案有关系的集合 # -*- coding: utf-8 -*- from py2neo import Graph import psycopg2 # 二维数组查找 def fi ...
- java中数组的数组问题
int[] arr = new int[10]; int[] arr2 = arr; arr[1] = 10; arr2[1] = 20; System.out.println(arr[1]); 上面 ...
- 008-流程控制 case 语句
流程控制 case 语句 与if...elif...else 语句一样都是多分支条件语句,不过if语句可以判断多种条件关系,case只能判断一种条件关系 [root@zabbix lianxi]# . ...
- 2019 蓝桥杯国赛 B 组模拟赛 E 蒜头图 (并查集判环)
思路: 我们看条件,发现满足条件的子图无非就是一些环构成的图, 因为只有形成环,才满足边的两个点都在子图中,并且子图中节点的度是大于0的偶数. 那么如果当前有k个环,我们可以选2^k-1个子图,为什么 ...
- error: undefined reference to `cv::imread(std::string const&, int)'
g++ main.cpp -o main `pkg-config --libs --cflags opencv`注意--libs的位置https://stackoverflow.com/questio ...
- python基础练习题1
深深感知python基础是有多么重要,Ljh说一定要多练题,so,我现在开始要每天打卡练习python.加油! 01:求‘1-100’的偶数和 #第一种解法: sum=0 num=0 while nu ...
- jvm 堆
1.堆内存线程共享,在虚拟机启动时创建. 2.几乎所有的对象实例都在堆上分配:栈中存放基本数据类型和堆中对象的引用. GC回收 程序计数器.虚拟机栈.本地方法栈随线程而生,随线程而灭.栈中的栈帧随着方 ...
- ZROI 19.07.28 组合计数/lb
T1 题意:\(n\)个变量,\(0 \leq x_i \leq c_i\),求\(\sum x_i = A\)方案数.\(n \leq 32\). Sol: \(n \leq 10\)的时候容斥很水 ...