UFT 12.5 中的对象识别问题
Object identification issues in UFT 12.5
我有一个 AUT(angular JS 开发)。我想知道 uft 是否存在开发平台中对象的对象识别问题?
我已经尝试使用 DP 方法、.set、触发事件、重播时间方法,但它仍然没有在我的 WebEdit 字段中设置值,抛出错误消息 "object not identified/ one or more objects with same property"
我的要求是在WebEdit中输入一个值,然后根据输入的值显示相应的选项(不是下拉),我需要select从选项中取一个值。
这是我当前的代码:
Dim current_Page
Set current_Page = Browser("Start").Page("Start")
current_Page.Sync
Dim oDesc
Set oDesc = Description.Create 'Create an empty description
oDesc("micClass").value = "WebEdit"
oDesc("type").value= "text"
oDesc("name").value= "locationSearch"
oDesc("html tag").value= "INPUT"
Wait 2
If current_Page.WebEdit(oDesc).Exist(1) Then
current_Page.WebEdit(oDesc).Highlight
current_Page.WebEdit(oDesc).Click
End if
current_Page.WebEdit(oDesc).set "06116"
您在对象识别方面遇到了问题,因为您用来识别所需对象的属性与屏幕上的多个对象匹配。
没有正确答案 属性 您应该使用哪个来正确识别您的对象,尽管有些属性更有可能是唯一的,因此会对您有所帮助。
在映射和识别我的对象时我通常考虑的属性是:
micClass
- UFT 可识别 class,例如 WebEdit、WebElement、Link 等;
class
- html class,非常有帮助,视情况而定;
html id
- 如果您的开发人员是一个好人并且遵循良好的编码习惯,那么这是一个很好的选择;和
html tag
-也很好用
但这几乎是一个监视对象的属性并分析您的应用程序以确保您不会遇到重复项的问题。
监视对象属性的一种方法是在浏览器中点击 F12
并从浏览器中使用 Developer toolkit。
另一种方法是使用 UFT 中的 Object Spy。
无论采用哪种方式,您都应该能够识别对象的哪些属性是唯一的。
如果您在对象存储库中映射您的对象,您还可以利用视觉参考标识设置来确保您拥有唯一的对象标识,正如我在评论中提到的那样。
为此,请按照以下步骤操作:
- 打开对象存储库管理器;
- Select 您的映射对象;
- 单击 [None。单击右侧窗格中视觉关系标识符设置旁边的添加];
- 单击 window 上的 预览 按钮将打开
这将突出显示屏幕上与您用于映射对象的属性相匹配的所有对象,还将向您显示您的 AUT 中有多少对象具有相同的属性。
之后,您可以细化您的对象识别,直到您只识别出一个对象。
另一个使用此资源的好方法(实际上是使用它的主要原因)是当您根本找不到合适的属性来使您的对象具有唯一性以进行识别时,因为在这里您实际上可以映射另一个对象,该对象将始终显示在您想要的对象旁边。您可以在此处创建视觉参考,UFT 将能够识别您的对象。
您可以在 link:
中找到有关如何使用此类资源的非常好的教程
https://www.joecolantonio.com/2012/02/03/qtp-visual-relation-identifier/
最后但同样重要的是,如果您在对象存储库管理器中,请记住将 Smart Identification
属性 设置为 False
,以确保 UFT 没有识别不同的对象比您期望的对象。
我相信通过这些提示,您有更多机会正确识别您的对象。
我有一个 AUT(angular JS 开发)。我想知道 uft 是否存在开发平台中对象的对象识别问题?
我已经尝试使用 DP 方法、.set、触发事件、重播时间方法,但它仍然没有在我的 WebEdit 字段中设置值,抛出错误消息 "object not identified/ one or more objects with same property"
我的要求是在WebEdit中输入一个值,然后根据输入的值显示相应的选项(不是下拉),我需要select从选项中取一个值。
这是我当前的代码:
Dim current_Page
Set current_Page = Browser("Start").Page("Start")
current_Page.Sync
Dim oDesc
Set oDesc = Description.Create 'Create an empty description
oDesc("micClass").value = "WebEdit"
oDesc("type").value= "text"
oDesc("name").value= "locationSearch"
oDesc("html tag").value= "INPUT"
Wait 2
If current_Page.WebEdit(oDesc).Exist(1) Then
current_Page.WebEdit(oDesc).Highlight
current_Page.WebEdit(oDesc).Click
End if
current_Page.WebEdit(oDesc).set "06116"
您在对象识别方面遇到了问题,因为您用来识别所需对象的属性与屏幕上的多个对象匹配。
没有正确答案 属性 您应该使用哪个来正确识别您的对象,尽管有些属性更有可能是唯一的,因此会对您有所帮助。
在映射和识别我的对象时我通常考虑的属性是:
micClass
- UFT 可识别 class,例如 WebEdit、WebElement、Link 等;class
- html class,非常有帮助,视情况而定;html id
- 如果您的开发人员是一个好人并且遵循良好的编码习惯,那么这是一个很好的选择;和html tag
-也很好用
但这几乎是一个监视对象的属性并分析您的应用程序以确保您不会遇到重复项的问题。
监视对象属性的一种方法是在浏览器中点击 F12
并从浏览器中使用 Developer toolkit。
另一种方法是使用 UFT 中的 Object Spy。
无论采用哪种方式,您都应该能够识别对象的哪些属性是唯一的。
如果您在对象存储库中映射您的对象,您还可以利用视觉参考标识设置来确保您拥有唯一的对象标识,正如我在评论中提到的那样。
为此,请按照以下步骤操作:
- 打开对象存储库管理器;
- Select 您的映射对象;
- 单击 [None。单击右侧窗格中视觉关系标识符设置旁边的添加];
- 单击 window 上的 预览 按钮将打开
这将突出显示屏幕上与您用于映射对象的属性相匹配的所有对象,还将向您显示您的 AUT 中有多少对象具有相同的属性。
之后,您可以细化您的对象识别,直到您只识别出一个对象。
另一个使用此资源的好方法(实际上是使用它的主要原因)是当您根本找不到合适的属性来使您的对象具有唯一性以进行识别时,因为在这里您实际上可以映射另一个对象,该对象将始终显示在您想要的对象旁边。您可以在此处创建视觉参考,UFT 将能够识别您的对象。
您可以在 link:
中找到有关如何使用此类资源的非常好的教程
https://www.joecolantonio.com/2012/02/03/qtp-visual-relation-identifier/
最后但同样重要的是,如果您在对象存储库管理器中,请记住将 Smart Identification
属性 设置为 False
,以确保 UFT 没有识别不同的对象比您期望的对象。
我相信通过这些提示,您有更多机会正确识别您的对象。