Диалог недоступен в течение 60 секунд - PullRequest
0 голосов
/ 25 марта 2009

Я пытаюсь использовать обработчик диалога в функции дважды. В первый раз он работает хорошо, но во второй раз зависает система с открытым диалоговым окном и показывает Ok и Cancel butoon, но никогда не может щелкнуть по нему. Также происходит тайм-аут с ошибкой «Диалог недоступен в течение 60 секунд»

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 

Используя это в 2 местах в моем коде, первый раз, когда он выполняется нормально, а второй раз в рамках той же функции, он дает диалоговое окно недоступно, в то время как это доступно ошибка.

1 Ответ

2 голосов
/ 25 марта 2009

Мое лучшее предположение, что во втором проходе вы снова звоните ie.AddDialogHandler(cdhPopup), тем самым регистрируя его во второй раз, что каким-то образом приводит к сбою программы при вызове обработчиков (возможно, межпоточный доступ к внутренним переменным?)

Вы должны выполнить проверку, если обработчик зарегистрирован, и регистрировать его, только если это не так.

...