UFT 12.5中的对象识别问题

时间:2016-11-23 09:58:42

标签: angularjs hp-uft

我有一个AUT(角度JS开发)。我想知道uft在开发平台中是否存在对象识别问题?

我尝试过使用DP方法,.set,触发事件,重放时间方法,但仍然没有在我的WebEdit字段中设置值,方法是抛出错误消息"对象未识别/一个或更多具有相同属性的对象"

我的要求是在WebEdit中输入一个值,然后根据输入的值显示相应的选项(不是下拉列表),我需要从选项中选择一个值。

这是我目前的代码:

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"

1 个答案:

答案 0 :(得分:0)

您遇到了对象识别问题,因为您用于识别所需对象的属性与屏幕上的多个对象匹配。

为了正确识别您的物体,您应该使用哪个属性没有正确的答案,尽管有些属性更有可能是唯一的,因此会对您有所帮助。
映射和识别对象时通常考虑的属性是:

  • micClass - UFT可识别的类,例如WebEdit,WebElement,Link等;
  • class - html类,非常有用,视情况而定;
  • html id - 这是一个非常好的,如果你的开发人员是一个好人并且遵循良好的编码习惯;和
  • html tag - 也非常好用。

但这几乎是一个间谍对象属性和分析你的应用程序以确保你不会重复的问题。

监视对象属性的一种方法是在浏览器中点击F12并使用浏览器中的Developer工具包。

另一种方法是使用UFT的Object Spy。

无论哪种方式,您都应该能够识别对象中哪些属性是唯一的。 如果要在Object Repository中映射对象,您还可以利用Visual引用标识设置来确保标识唯一对象,如我在评论中提到的那样。
为此,请按照以下步骤操作:

  1. 打开Object Repository Manager;
  2. 选择您的映射对象;
  3. 点击 [无。点击右侧窗格中可视关系标识符设置旁边的<添加] ;
  4. 点击将打开的窗口上的预览按钮
  5. 这将突出显示屏幕上与您用于映射对象的属性相匹配的所有对象,并且还将显示您在AUT中共享相同属性的对象数量。
    之后,您可以优化对象标识,直到您只识别出一个对象。

    使用此资源的另一个好方法(实际上是使用它的主要原因)是当您无法找到正确的属性以使您的对象唯一识别时,因为在这里您可以实际映射另一个将始终显示的对象在您想要的对象旁边。在这里,您可以创建一个可视参考,UFT将能够识别您的对象。 您可以在此链接中找到有关如何使用此类资源的非常好的教程:
    https://www.joecolantonio.com/2012/02/03/qtp-visual-relation-identifier/

    最后,但并非最不重要的是,如果您在对象存储库管理器中,请记住将Smart Identification属性设置为False,以确保UFT未识别出与您不同的对象期待。

    我相信通过这些提示,您有更多机会正确识别您的物体。