2013-02-27 69 views
0

有沒有辦法在任何頁面上使用QTP對象庫中的對象而不將它們綁定到特定頁面?如何在網站範圍內使用QTP資源庫對象?

下面是一個例子:

我有頂級導航(首頁,存檔,論壇,關於,聯繫方式)網站。 QTP將這些鏈接存儲在某個頁面下的對象庫中。例如:

瀏覽器谷歌

- 頁首頁

----鏈接:首頁

----鏈接:存檔

----鏈接:論壇

----鏈接:關於

----鏈接:聯繫我們

現在我想從Homepage以外的頁面訪問Link: Home,比方說從Archive頁面。我是否需要將鏈接對象存儲在Archive頁面對象下,或者有辦法從任何頁面訪問鏈接?

回答

2

您可以操作Object Repository中的Description屬性。現在,您可能會看到名稱爲Title和值Homepage的主題對象的說明。您可以刪除或更改此說明(您可以使用正則表達式作爲通配符匹配)以匹配標題爲「主頁」的頁面。有時您必須爲瀏覽器對象執行相同的操作,該瀏覽器對象是此頁面的父對象。

請注意:

  • 當你擴大你的識別範圍,機會是錯誤的頁面匹配或者,如果有屏幕上的多個頁面匹配相同的描述,沒有頁面被認可,因爲他們並不是唯一的。解決此問題的方法:使用對這兩個頁面均有效的唯一屬性,或作爲序號標識符的最後一個解決方案
  • 當您從頁面中學習新對象時,它們會在新頁面中學習(而不是您剛纔改變了描述),你必須合併這兩個頁面。這在QTP中可能會很痛苦。
+0

感謝您的回答,我沒有想到這個解決方案。這是處理這個問題的常用方法嗎?這對我來說似乎有點像黑客。 QTP中沒有更清晰的方法嗎? – finspin 2013-02-27 17:02:21

+0

很常見。有時候頁面的標題是動態的,但也有一些時候QTP會記錄某些屬性是可變的,而不需要進行識別,您可以直接刪除它們。有時候,你的文字中有可變部分,就像鏈接一樣:[查看我的42封郵件](http://example.com)。然後你需要建立一個正則表達式'^ View my \ d + mail messages $'。只需使用它,但定期保存和備份。 – AutomatedChaos 2013-02-27 18:04:29

+0

感謝您的澄清。我會試試這個。我是否理解你是正確的,我可以嘗試將我工作的所有對象放置在一個(靈活)頁面下(即用一些寬鬆的正則表達式),以避免OR中的對象重複? – finspin 2013-02-27 18:32:53