1.6 解决某类对象的识别问题(Soving Object Identification Problems for a Test Object Class)
如果你发现某类对象的对象描述对于被测程序来说都不是很合理,或你预期到对象描述中的某属性值是经常变化的,你可以在Object Identification对话框中改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。
1.7 解决单个对象的描述问题(Solving Individual Test Object Descrīption Problems)
选择下列方法之一来解决对象的描述问题:
>>>如果被测程序中对象描述发生了改变,并且你也清楚改变的内容,并且该改变是永久性或长期性的,你可以直接手工修改仓库中对象描述中的相关属性值。
>>>如果被测程序中的对象的属性值依赖于前面的步骤或其它对象,则将该属性值参数化,这样就可以使用其它步骤的输出值为属性值。
>>>如果属性值的组成部分中,部分是固定的,部分是动态改变的,则可以将属性值设计为正则表达式。
>>>如果属性值是遵循某种规则变化的,或者是不可预期的,则从对象描述中移除该属性,并向对象描述中添加一个或多个属性以便于QTP进行对象识别。
>>>If you can only access the information on the property values during the run session, you can create and use functions that use programmatic descrīptions to identify the object using property values retrieved earlier in the run session.
For more information on programmatic descrīptions, see Using Programmatic Descrīptions.
>>>如 果在录制过程中对象是唯一的,但现在程序中出现了两个或多个描述相同的对象,但是它们在页面(或窗口)中的位置不相同,则应在Object Properties或Object Repository窗口中,向对象描述中添加一个ordinal identifier(index或location)。
1.8 重新录制对象,以判断父对象描述是否存在问题(Re-recording an Object to Identify Parent Object Descrīption Problems)
根据下面的指引,来判断父对象的问题。
通过重新录制对象,来判断它的父对象是否存在问题:
1) 打开浏览器或程序,来到包含被测对象的页面或窗口。
2) 在关键字视图模式,选择最后一个组件(component),或在专家视图模式,将光标放在最后一个脚本步骤的下面。
3) 点击Record按钮,或选择Automation>Record。
4) 点击(或操作)页面或窗口中的目标对象。
5) 点击Stop按钮,或选择Automation>Stop,完成步骤添加。
6) 右击新添加的步骤,并选择Object Properties右键菜单。
7) 在Object Properties对话框中,点击Repository,打开Object Repository窗口,并选中了新对象。注意记下该对象的继承关系。
8) 在Object Repository窗口中找到旧的对象(即存在问题的对象),将它的继承关系与新对象的继承关系进行比较。
通过比较,可以检查到新旧对象是父对象的描述存在不同,还是它们的继承关系根本就不同。
a. 如果是父对象的描述问题,则修改父对象的描述。参见1.4.
b. 如果是对象的继承关系不正确(即具有不同的父对象)引起的问题,则在脚本中找到所有使用该继承关系的实例,将它们替换为正确的继承关系。
举例:参见1.8.1。
但是,当QTP运行到第2步时,就弹出信息框,内容为“False”,表示不能找到Page object。这就证明Page对象存在问题。
确定了出现问题的父对象以后,修复该问题。参见1.4。作者: rivermen 时间: 2007-9-3 17:44
2. 运行错误:对象不唯一(The object is not unique)
在被测页面或窗口中的同一父对象下,找到多个与仓库中对象描述相符的Run-tim对象。
请确定是只有个别对象存在此问题,还是此类对象的所有对象(或部分对象)存在此问题。
此类对象的所有对象(或部分对象)都存在此问题吗?
如果是,参考2.1;
如果否,参考2.2。
2.1 为某对象类设置能唯一识别对象的描述规则(Configuring Unique Test Object Descrīptions for a Test Object Class)
如果你发现某类对象的对象描述都不足以唯一识别对象,你可以在Object Identification对话框中,改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。
2.2 设置通唯一识别对象的对象描述(Creating a Unique Test Object Descrīption for an Object)
查看当前对象的描述,并偿试在程序中找到其它具有相同描述的对象并查看它们的描述。
>>>如果你找到了可以将它们区别开来的一个或多个属性,则修改仓库中对象的相关属性(如向描述中添加属性等),以使QTP在运行时可以唯一识别它。
>>>如果它们的识别属性完全相同,则在对象描述中为对象添加一个ordinal identifier(index或location)。
3. 运行错误:找不到父对象(Parent not found)
识别对象时,会先识别它的父对象是否正确。如果遇到“Parent not found”的错误信息,请偿试以下解决方法:
>>>修复出现问题的父对象的描述。参见1.4。
>>>在脚本中找到继承关系不正确的实例,并修改为正确的继承关系。例如1.8.1。