2010-08-28 25 views
2

我同時使用存在方法QTP..As如果我用的if else那麼它工作正常存在...但如果直接使用則沒有工作面臨的問題與...問題存在方法

例:

Browser("Home").Page("Home_2").WebEdit("ctl00$uxMNJDefaultContentPlace").Click 
Browser("Home").Page("Home_2").WebEdit("ctl00$uxMNJDefaultContentPlace").Set DataTable("mfgpartnumber", dtGlobalSheet) ''#Read mfg# from datasheet 

Browser("Home").Page("Home_2").Image("ctl00$uxMNJDefaultContentPlace").FireEvent "onmouseover" 

Browser("Home").Page("Home_2").Image("ctl00$uxMNJDefaultContentPlace").Click 31,11 
wait(15) 

Browser("Home").Page("Shopping Cart").WebElement("$3.99").Output CheckPoint("Shoppingcart_subtotal") 

Browser("Home").Page("Shopping Cart").Check CheckPoint("Shopping Cart_price_2") 

''#Browser("Home").Page("Shopping Cart").WebElement("$3.99").Output CheckPoint("$3.99") 

Browser("Home").Page("Shopping Cart").Image("ctl00$uxMNJDefaultContentPlace").FireEvent "onmouseover" 

Browser("Home").Page("Shopping Cart").Image("ctl00$uxMNJDefaultContentPlace").Click 66,10 
wait(5) 

Browser("Home").Page("Edit Shipping Address").Link("Continue").Click 
wait(5) 

Browser("Home").Page("Order Shipping Method").Link("Continue").Click 
wait(5) 

在這裏,我要替換的等待(_一些其他方法一樣存在,以提高性能...

任何人可以幫助我梳理出來..,

謝謝, Guddu摹

+0

1.這是不清楚你想在你的例子中使用Exist方法。 2.如果你想等待,也許最好看看Sync和WaitProperty方法? – katmoon 2010-08-28 16:51:39

+0

嘿,現在結帳的代碼...希望你會幫助我.... 謝謝 – guddu 2010-08-30 06:03:51

回答

2

@guddu

既然你等待瀏覽器加載其他頁面,使用Browser.Sync適用。
如果在重新加載頁面後對象沒有正確顯示,請使用帶有參數的.Exist方法。
例子:

boolRC = Browser("Home").Page("Shopping Cart").WebElement("$3.99").Exist(15) 

這樣,你給高達 15秒的對象出現。如果對象更早出現,腳本會更快地移動。
如果對象在出現後可延遲運行,請使用WaitProperty方法,正如@katmoon指出的那樣。

最後,您就可以使用事件(出現/消失等),超時屬性來檢查自定義的參數實現自己的同步功能...

例子:http://automation-beyond.com/2009/08/20/gui-object-synchronization-custom-function/

謝謝,
阿爾伯特Gareev
http://automation-beyond.com/

+0

謝謝你回答..但存在的功能不工作.. donn知道爲什麼嗎? 它只與if一起工作,否則 – guddu 2010-08-30 14:26:46

+0

您能提供更多詳細信息嗎?它是錯誤信息,還是看不到預期的效果;日誌中寫的是什麼? – 2010-08-30 15:09:42

+0

先生,這只是一個與存在函數有關的錯誤消息... :( 但是,如果我把存在的功能,如果其他然後它的工作:( – guddu 2010-08-31 04:18:16

0

等待 - 用於指示所述QTP方法來等待執行 僅基於 規定的時間,但不能在任何條件下 E.g. 等待5(或)等待(5)「5秒

此方法不應advisable.Always使用動態等待加快執行。

WaitProperty - 方法用於指示QTP等待執行 過程,直到它 匹配基於所述指定時間的對象的屬性值。

E.g. 瀏覽器(「歡迎:水星之旅」)。WaitProperty 「名」 「歡迎: 水星之旅」 5000

  1. 屬性名 - 「名」
  2. 屬性值 - 「歡迎:水星之旅」
  3. 5000 - 毫等待的秒數

    昏暗I = 0 做 I = I + 1個

    BSTATUS =瀏覽器()。存在(1)' 「1」 表示它會等待最多1秒,然後它會procee d進一步

    如果I> 15然後「在此處指定的等待時間(我提到15秒)

    exit do 
    

    END IF

    循環,直到BSTATUS =真

通過提供同步點測試器會嘗試匹配QTP和應用程序的執行速度 ,因爲可能發生您正在執行的下一個 操作這取決於以前的結果,並且它尚未生成。 對於任何對象的默認等待時間爲20秒,並且對象不是在20秒內出現的 而不是腳本。因此,爲了避免這樣的情況 我們使用的同步點

始終使用Waitproperty 不要使用硬編碼等待

存在方法將總是返回布爾值

Object.exist瀏覽器()。頁面()。exists()這將返回一個布爾值,如true或false

blnStatus = Browser()。exists()

MSGBOX blnstatus「返回TRUE或FALSE

0

你好,這是我用的,而不是等待和殘疾性質的簡單功能,我認爲它可以幫助..謝謝你..

Set NavigationTab = Browser().Page().WebElement() 
PerformWait (10 , 10 , NavigationTab) 


Function PerformWait (intDisableTime , intDelay , object) 

if CheckExist (intDelay , object) Then 

if ValidateDisabled (object , intDisableTime) Then 

    object.Sync 
    Reporter.ReportEvent 0 , "Element is ready to use" , "The specified element is ready to use" & Date & Time 


    Else 

    Reporter.ReportEvent 3 , "Object Disabled." , "Object remains disabled after specified time : " & refDisableTime & Date & Time 

End If 

Else 

Reporter.ReportEvent 3 , "Element not present." , "The specified element not present : " & Date & Time 

End If 

End Function 

Function CheckExist (intDelay , object) 

object.RefreshObject 

' -- validating the object is exist or not. 
If object.Exist (intDelay) Then 

CheckExist = True 

Else 

CheckExist = False 

End If 

End Function 


Function ValidateDisabled (object , intDisableTime) 


For Iterator = 1 To intDisableTime Step 1 

' -- validating the object is disabled or not. 
If object.GetROProperty ("disabled") = 1 Then 

    wait 1 
    ValidateDisabled = False 

Else 

    ValidateDisabled = True 
    Exit For  

End If 

Iterator = Iterator + 1 
Next 

End Function