2009-03-25 10 views
0

J'essaie d'utiliser le gestionnaire de dialogue deux fois dans une fonction. Pour la première fois, il s'exécute bien mais une seconde fois il bloque le système avec la boîte de dialogue ouverte et affiche Ok et Annuler butoon mais jamais capable de cliquer dessus. En outre, il fois avec une erreur « dialogue non disponible dans les 60 secondes »Boîte de dialogue non disponible dans les 60 secondes

Dim cdhPopup As ConfirmDialogHandler 
cdhPopup = New ConfirmDialogHandler() 
If (ie.Button(Find.ById("btnDelete")).Exists) Then 
    'Cancel the booking ' 
    ie.AddDialogHandler(cdhPopup) 
    ie.Button(Find.ById("btnDelete")).ClickNoWait() 
    cdhPopup.WaitUntilExists() 
    cdhPopup.OKButton.Click() 
    ie.WaitForComplete() 'Wait for page to finish loading ' 
Else 
    Assert.Fail("Could not found the Cancel Button") 
End If 

L'utilisation de ce à 2 endroits dans mon code, première fois il exécute bien et deuxième fois en même fonction, il donne dialogue pas disponible alors qu'il est erreur disponible.

+0

pourriez-vous fournir les parties pertinentes de votre code source? Sans qu'il ne soit pas possible de répondre à votre question. – Treb

Répondre

2

Ma meilleure estimation est que dans le second passage, vous êtes à nouveau appelez ie.AddDialogHandler(cdhPopup), enregistrant ainsi une deuxième fois, ce qui est bloque en quelque sorte le programme lorsque les gestionnaires sont appelés (accès fil croix aux variables internes peut-être?)

Vous devez vérifier si le gestionnaire est enregistré et ne l'enregistrer que si ce n'est pas le cas.

+0

Merci beaucoup. Oui tu as raison. Il plante sur l'enregistrement – sam

Questions connexes