oooxiu 发表于 2010-6-9 11:39:33

对象无法识别的解决办法之一

当我们在录制脚本中,有时会遇到某个对象回放时不能识别.那么就可以考虑是不是可以设置个虚拟对象来代替它.将这些不能识别的对象定义为虚拟对象,并将它们映射到标准类,例如按钮或复选框。QuickTest 在运行会话过程中模拟虚拟对象上的用户操作。在测试结果中,虚拟对象显示时类似标准类对象。
  下面我们还是通过一个例子来具体操作一下.这次选用QuickTest的b/s架构的web例子,来录制脚本.录制双击时不能识别,此时需要设置虚拟对象   录出双击脚本如下:
Browser("login").Window("... -- 网页对话框").Page("...").Frame("contentLeft").WebElement("admin").Click
把button识别成Image(图片)
Browser("login").Page("eDASS-4A审计管理系统").Frame("basefrm").Image("search").Click
1、有时qtp不能识别双击,导致最后回放的时候,QTP不能完成Click操作,弹出报错信息.需要设置虚拟的button对象来代替它.
2、QTP有时把button对象识别成了Image(图片)对象,导致最后回放的时候,QTP不能完成Click操作,弹出报错信息,需要设置虚拟的button对象来代替它.
下面是整个虚拟对象的制作过程:
1.选择“Tools > Virtual Objects > New Virtual Object”。或者,也可以在虚拟对象管理器“Tools > Virtual Objects > Virtual Object Manager”中,单击“NEW”。将打开虚拟对象向导。单击“下一步”。

2.选择要将您的虚拟对象映射到的标准类(这里有六种对象类供你选择,分别是object,button,table,list,check box,radio button).这里我们要映射一个button对象,所以选择button.单击"下一步"

3.单击“标记对象”。选择你要做虚拟对象的区域,拖动鼠标.尽量能覆盖整个你想替代的对象.

4.在“标识对象使用”框中,选择您希望 QTP 标识和映射虚拟对象的方式。

如果您想要 QuickTest 标识所有出现的虚拟对象,请选择“Parent only”。
如果想要 QuickTest 仅标识一次出现的虚拟对象,请选择“Entire parent hierarchy"。
这里我们选择默认的“Parent only”。
5.指定虚拟对象的名称和集合。从集合列表中选择,或通过在“集合名”框中输入新名称来新建集合

点击完成,整个虚拟对象就做好了.
虚拟对象做好后,保存在虚拟对象管理器中.我们可以通过虚拟对象管理器来删除或禁用虚拟对象定义.
选择“Tools > Virtual Objects > Virtual Object Manager”。将打开虚拟对象管理器。

注意:如果希望 QuickTest 在录制时识别虚拟对象,请确保清除“选项”对话框的“常规”选项卡中的“录制时禁止识别虚拟对象”复选框。
接下来我们再来录制一遍刚才的操作,录制代码如下:
双击:
Browser("login").Window("... -- 网页对话框").Page("...").Frame("contentLeft").WebElement("admin").VirtualButton("button1").Click
Browser("login").Page("eDASS-4A审计管理系统").Frame("basefrm").VirtualButton("button2").Click
在录制过程中值得注意的是,一定要点击到我们做好虚拟对象的范围内,这样QTP才能识别到这个虚拟对象.这里我们的虚拟对象识别成功.再次回放,QTP顺利的执行了脚本.
还有两点要注意的是:
1.虚拟对象管理器中显示的虚拟对象集合存储在您的计算机中,而不是随包含虚拟对象步骤的测试或组件存储。这意味着如果您在测试或组件步骤中使用虚拟对象,则仅当在包含正确的虚拟对象定义的计算机中运行时,该对象在运行会话过程中才能被识别。要将您的虚拟对象集合定义复制到另一个计算机,请将您的 <QuickTest 安装文件夹>\dat\VoTemplate 文件夹的内容(或该文件夹中的单个 .vot 集合文件)复制到目标计算机上的相同文件夹中。
2.仅当录制和运行测试或组件时,才能使用虚拟对象。您不能在虚拟对象上插入任何类型的检查点,也不能使用“对象探测器”来查看其属性。
还有多个类似的对象需要设置虚拟对象.

[ 本帖最后由 oooxiu 于 2010-6-9 11:57 编辑 ]

baobao72931 发表于 2010-6-17 10:10:27

:L

baobao72931 发表于 2010-6-17 10:14:39

为啥我录制的脚本回放时,有的东西就不同步了,该输入值的地方不输入了,常常提示不能为空,然后卡到那里不走了 - -、
页: [1]
查看完整版本: 对象无法识别的解决办法之一