2017-03-07 89 views
0

我在爲一個網站編寫測試。您必須在不同的頁面上登錄兩次才能訪問第二頁。你可以讓VB腳本只匹配特定對象而不是通用對象嗎?

這裏是什麼,我已經寫了一個例子(這個作品有時):

If Browser("EXAMPLE").Page("LogInPage").WebEdit("ID").Exist Then 
    Browser("EXAMPLE").Page("LogInPage").WebEdit("ID").Set "tporte51" 
    Browser("EXAMPLE").Page("LogInPage").WebEdit("PASSWORD").SetSecure "HiddenPassword" 
    Browser("EXAMPLE").Page("LogInPage").WebButton("I Concur").Click 
End If 

If Browser("EXAMPLE").Page("LogInPage2").WebEdit("txtUserName").Exist Then 
    Browser("EXAMPLE").Page("LogInPage2").WebEdit("txtUserName").Set "testuser" 
    Browser("EXAMPLE").Page("LogInPage2").WebEdit("txtPASSWORD").SetSecure "HiddenPassword2" 
    Browser("EXAMPLE").Page("LogInPage2").Link("Login").Click 
End If 

我的問題是,在UFT運行這個時候,有時它承認第二次登錄(WebEdit(「txtUserName」))作爲第一次登錄(WebEdit(「ID」))並嘗試使用錯誤的憑據。

任何想法的補救措施?

+0

什麼是對象的層次結構?它真的是'瀏覽器 - >頁面 - > WebEdit-> WebEdit'嗎?同樣在第二個'If'的情況下,您正在檢查'瀏覽器 - >頁面 - > WebEdit-> WebEdit'的存在,但是將數據填入'Browser-> Page-> WebEdit'中。如果您正在識別瀏覽器和頁面,那麼它應該能夠正確地運行正確的層次結構。 – ManishChristian

+0

我修復了代碼示例以消除從虛擬機複製和隱藏任何可識別信息時所犯的錯誤。 – Collatrl

+0

你能唯一識別你的所有物體嗎?如果沒有,你可以發佈這兩個頁面的相關HTML源代碼嗎? – ManishChristian

回答

0

從您的代碼看來,您使用的Browser對象與Page不同,以區分不同的瀏覽器選項卡(?)。

請注意,Browser用於標識選項卡,並且每個Browser一次只有一個PagePage對象僅用於組織對象存儲庫,並且不具有識別對象的作用。欲瞭解更多信息,請參閱此blog post

相關問題