2010-08-28 6 views
2

Je suis confronté à des problèmes lors de l'utilisation Exist méthode QTP..As si je l'utilise avec Existent Si d'autre il fonctionne très bien ... mais si elle est utilisée directement alors ne fonctionne pas ...problème lié à Existent méthode

ex.:

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) 

ici, je veux remplacer attente (_ à une autre méthode comme Existent pour améliorer les performances ...

Quelqu'un peut-il me aider de faire le tri ..,

Merci , Guddu G

+0

1. Il est pas clair comment vous voulez utiliser la méthode Exist dans votre exemple. 2. Si vous voulez attendre, peut-être est-il préférable de jeter un oeil aux méthodes Sync et WaitProperty? – katmoon

+0

Hey maintenant vérifier le code ... j'espère que vous m'aidez .... Merci – guddu

Répondre

2

@guddu

Puisque vous attendez le navigateur pour charger une autre page, utilisez Browser.Sync le cas échéant.
Si un objet n'apparaît pas après le rechargement d'une page, utilisez la méthode .Exist avec un paramètre.
Exemple:

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

De cette façon, vous donner jusqu'à 15 secondes pour un objet à apparaître. Si l'objet apparaît plus tôt, votre script se déplace plus rapidement.
Si l'objet devient disponible pour fonctionner avec un délai après son apparition, utilisez la méthode WaitProperty, comme indiqué par @katmoon.

Enfin, vous pouvez implémenter votre propre fonction de synchronisation avec des paramètres personnalisables comme événement (apparaître/disparaître, etc.), temporisation, propriété à vérifier ...

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

Merci ,
Albert Gareev
http://automation-beyond.com/

+0

Merci d'avoir répondu ... mais la fonction Exist ne fonctionne pas .. sait pourquoi? Il fonctionne uniquement avec if, sinon – guddu

+0

Pouvez-vous fournir plus de détails comment cela ne fonctionne pas? Est-ce un message d'erreur, ou vous ne voyez pas un effet que vous attendez; Qu'est-ce qui est écrit dans le journal? –

+0

Monsieur, il est juste un message d'erreur lié à la fonction Exist ... :( Mais si je mets existe fonction dans sinon, alors cela fonctionne :( – guddu

0

attendez - méthode est utilisée pour charger le QTP d'attendre l'exécution processus basé sur l'heure spécifiée seulement, mais pas sur n'importe quelle condition E.g. Attendre 5 (ou) Wait (5) « 5 secondes

Cette méthode ne advisable.Always utilisent attente dynamique pour accélérer l'exécution.

WaitProperty - méthode est utilisée pour instruire QTP d'attendre l'exécution processus jusqu'à matchs avec la valeur de la propriété de l'objet en fonction du temps spécifié.

E.g. Navigateur ("Bienvenue: Mercury Tours").WaitProperty "name" "Bienvenue: Tours Mercury" 5000

  1. NAME de propriété - "name"
  2. valeur de la propriété - "Bienvenue: Mercury Tours"
  3. 5000 - nombre de secondes milli d'attendre

    Dim i = 0 faire i = i + 1

    bstatus = navigateur(). existe (1) "1" signifie qu'il attendra max 1 sec puis il Procee d autre

    si i> 15 puis « indiquer ici le temps d'attente (je l'ai mentionné 15 sec)

    exit do 
    

    End si

    boucle

    jusqu'à bstatus = true

En fournissant testeur de point de synchronisation essaie de correspondre à l'exécution vitesse de QTP et de l'application, car il peut arriver que la prochaine opération que vous exécutez ing dépend du résultat précédent et il n'est pas encore généré. Le temps d'attente par défaut pour tout objet est de 20 secondes et l'objet n'est pas apparaissant en 20 secondes que le script peut échouer. Donc, pour éviter une telle condition que nous utilisons la synchronisation Points

Utilisez toujours Waitproperty Ne pas utiliser hardcoded attente

Exist méthode renvoie toujours la valeur booléenne

Object.exist ou Browser(). la page(). exist() cela renvoie une valeur booléenne dire vrai ou faux

blnStatus = Navigateur(). exist()

msgbox retour de blnstatus vrai ou faux

0

Salut C'est une fonction simple j'utilise au lieu d'attendre et propriété disabled je pense que cela peut aider .. Merci ..

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