2009-03-25 9 views
0

私はDialogハンドラを関数内で2回使用しようとしています。最初はうまく実行されますが、2回目にはダイアログボックスを開いた状態でシステムをハングアップし、OKとキャンセルボタンを表示しますが、決してクリックすることはできません。また、タイムアウトエラーと「60秒以内にダイアログが利用できない」ダイアログは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箇所で、それは同じ関数内で細かい目と2回目の実行初めてこれを使うことがあるのに対し、それは対話できません提供します利用可能なエラー。

+0

ソースコードの関連部分を提供することはできますか?それがなければあなたの質問に答えることはできません。 – Treb

答えて

2

私の最高の推測では、第二のパスにあなたは再びそれによって、それをハンドラが呼び出されたときに何らかの形でプログラムをクラッシュされる二度目、登録、 ie.AddDialogHandler(cdhPopup)を呼び出していることである(多分内部変数へのクロススレッドのアクセスを?)

ハンドラが登録されているかどうかを確認し、登録されていない場合は登録する必要があります。

+0

ありがとうございます。はい、あなたが正しい。登録時にクラッシュする – sam

関連する問題