2016-11-23 91 views
-1

我有一個AUT(angular JS開發)。我想知道開發平臺中的對象是否有對象識別問題?UFT中的對象識別問題12.5

我已經嘗試過使用DP方法,.set,fire事件,重放時間方法,並且仍然沒有在我的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" 
+0

您正在接收「未識別的對象/一個或多個具有相同屬性的對象」,因爲您的AUT具有其他winedit對象,而該對象具有與用於識別對象的屬性相同的屬性。檢查正在使用的屬性並將它們精確化以獲得適當的對象標識 –

+0

如果在對象存儲庫中映射了所需的對象,請打開* Object Repository Manager *,選擇映射的對象並單擊** [None。單擊以在右窗格上的* Visual關係標識符設置*旁邊添加] **。之後,單擊將打開的窗口上的**預覽**按鈕。它會在屏幕上突出顯示,並向您展示您在AUT中共享相同屬性的對象數量。之後,您可以優化對象識別,直到只有一個對象被識別。如需進一步的幫助,請提供您的代碼 –

+0

Hii Victor感謝您的評論。 – user7199123

回答

0

,因爲你正在使用,以確定您需要的對象的屬性匹配在屏幕上多個對象你正面臨着物體識別的問題。

雖然有些屬性具有較高的唯一性,因此可以幫助您,但您應該使用哪些屬性來正確識別您的對象。
我映射和我的識別對象時,通常考慮到的屬性是:

  • micClass - UFT識別類,如WebEdit,WebElement,鏈接等;
  • class - html類,非常有幫助,根據情況而定;
  • html id - 如果您的開發人員是一個好人,並且遵循良好的編碼習慣,那麼這是一個非常好的選擇;和
  • html tag - 也很好用。

但是,這幾乎是一個間諜的對象的屬性和分析你的應用程序,以確保你將不會面臨重複的問題。

窺探對象屬性的一種方法是在瀏覽器中點擊F12,然後使用瀏覽器中的Developer toolkit。

另一種方法是使用來自UFT的Object Spy。

無論哪種方式,您應該能夠識別來自對象的哪些屬性是唯一的。 如果您在Object Repository中映射對象,則還可以利用Visual reference identification設置來確保您已識別唯一對象,如我在評論中所述。
爲此,按照此步驟:

  1. 打開對象存儲庫管理器;
  2. 選擇您的映射對象;
  3. 請點擊[無。單擊以添加]旁邊的視覺關係標識符設置在右側窗格中;
  4. 點擊窗口上預覽按鈕,將打開

這將突出顯示與您用來映射你的對象的屬性:屏幕上的所有對象,也將展現給你,你有多少對象有您的AUT具有相同的屬性。
之後,您可以改進您的對象標識,直到您只有一個對象標識。

使用此資源的另一個好方法(實際上是使用此資源的主要原因)是當您無法找到正確的屬性以使您的對象具有唯一的標識時,因爲在此處您可以實際映射另一個始終處於顯示在您想要的對象旁邊。在這裏你創建一個視覺參考和UFT將能夠識別你的對象。 你可以找到如何使用這些資源在這個環節一個很好的教程:
https://www.joecolantonio.com/2012/02/03/qtp-visual-relation-identifier/

最後,但並非最不重要的,如果你是在對象存儲庫管理,記得要Smart Identification屬性設置爲False,以確保UFT不會識別與您期望的不同的對象。

我相信這個提示你有更多機會正確識別你的對象。

+0

感謝您的詳細解釋。非常感謝 – user7199123

+0

我想自動化一個電子商務網站,我可以選擇1或2個選項,根據選擇的選項它將顯示產品/價格。你能告訴腳本使用的是什麼嗎?我從列表中找到了「objectSelectBox.Select」值,但它在Uft中不起作用,並且內部文本方法也不起作用。你能否在拍攝時遇到麻煩? – user7199123

+0

只有當你能夠將你的下拉對象識別爲WebList時,'listSelectBox.Select'列表中的值纔會起作用。如果你的對象被識別爲'WebElement',那麼你有更難完成的工作,但不幸的是,對於目前的問題來說,這是一個無關緊要的問題,請爲此創建一個單獨的主題,爲代碼提供您已經嘗試過的問題,以便社區可以爲您提供幫助。 –