2016-04-22 55 views
0

中的對象的建立和參考我想知道如何通過控制檯/手錶訪問屬性/方法。在HP UFT

我有以下代碼:

Dim page 
page = Browser("Welcome: Mercury Tours").Page 

現在我想獲得該頁面的標題。由於我使用Object Spy檢查了Page對象,並且我看到它有一個title屬性。

當我在我的手錶然而進入page.title,它告訴我,頁面不包含財產。
1.什麼是正確的語法?
2.爲什麼這不起作用?我認爲手錶正在檢查VBScript對象屬性而不是TestObject屬性?我有一個編程背景,我發現VBObject和TestObjects簡單地遍歷相同的文件非常混亂,它有點像黑盒子:/)

回答

3

好吧,你的語法不正確。 ..

看樣子,你想東西放在一個名爲「頁面」的變量,但我不知道如果我能找出你的意圖。

如果您試圖將頁面對象放入var頁面,您需要使用set語句(向vbscript表明它將持有一個對象,而不僅僅是一段數據)。 ..

無論如何,您指定頁面的語法是錯誤的。

在你的榜樣,你指定一個所謂的瀏覽器測試對象「歡迎:水星之旅」從資源庫......但那麼你就把。第 - 而這也正是你的語法錯誤是。

它有助於瞭解測試對象和實時對象之間的差異 - 因爲你需要指定頁面的測試對象。你可以通過從Object Repository中指定一個頁面對象來實現這一點,或者你可以用描述性的方式來做到這一點。

測試對象是QTP試圖找到的真實對象的描述。如果它成功地找到了與描述相匹配的真實對象,那麼測試對象(虛擬)就會「附着到」真實對象...然後,您可以使用測試對象來查詢真實對象的真實屬性附屬於。

因爲你明明在做教程,你的對象庫可能在瀏覽器對象下的heiarchy中有一個頁面測試對象......(如果你讓Intellisense幫忙,它會顯示一個頁面列表當你輸入...時選擇)。如果是的話,你會指定頁面對象是這樣的:

Browser("Welcome: Mercury Tours").Page("PageObjectNameHere") 

如果您更喜歡使用描述性的節目,你可以改爲輸入像:

Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours") 

你的語法更改到這類結構的將讓你解決你的問題的下一個部分進行 - 如何從頁面獲取一些數據...

所以,一旦你有正確的解決網頁測試對象,那麼你可以指定一個方法,從獲取信息它...比如.GetROProperty()

您可以從多個屬性中選擇一個頁面...如果您檢查使用GUISPY的頁面時,它幾乎讓你可以查詢...例如,如果你想查詢時顯示的頁面的URL屬性的列表,你可以指定

Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours").GetROProperty("url") 

這當然會返回一個值,所以你想用它做什麼...喜歡它賦值給一個變量

result = Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours").GetROProperty("url") 

(如果你這樣做,你就可以添加變量「結果」的手錶列表...它回答你的問題。)

或直接在你的代碼中檢查它

if Browser("Welcome: Mercury Tours").Page("Title:=Welcome: Mercury Tours").GetROProperty("url") = url_to_compare then DoSomething() 

我希望這可以幫助清理你的理解:)

+0

很好解釋!謝謝。我完全錯過了Dim和Set之間的區別,謝謝! – Kai

+0

是的,Dim和Set具有完全不同的用途...... Dim(維度)將聲明變量的名稱,併爲其留出記憶。如果你使用「Option Explicit」,那麼你必須爲每個變量使用Dim語句。這對於非常大的腳本很有用,因爲如果您嘗試使用未聲明的變量名稱(即,捕獲拼寫錯誤),則會引發錯誤。如果沒有選項顯式,變量名中的拼寫錯誤很難找到。 Set語句用於必須將對象分配給變量的情況。 (即「a = 5」與「set a = browser(」ie「)」) –

相關問題