2011-10-23 1 views
0

私はウェブサイトにログインして情報を取得するためにwatinを使用します。同じアカウントの別のログインがすでに他の場所に存在する場合、ウェブサイトはウィンドウをポップアップして「他のセッションを閉じる」と言う。 「はい」と「いいえ」の2つのボタンがあります。これをキャプチャして「はい」をクリックする必要があります。watin captureポップアップウィンドウで「はい」をクリック

ポップアップの種類はわかりませんが、AlertDialogHandlerとConfirmDialogHandlerを試しましたが、うまくいかないようですが、誰でも手助けできますか?以下はコードスニペットです。ありがとう!あなたがないかもしれないが、メッセージの速度によって

ConfirmDialogHandler confirm = new ConfirmDialogHandler(); 
using (new UseDialogOnce(BrowserIe.DialogWatcher, confirm)) 
{ 
    BrowserIe.Image(Find.ByName("login")).ClickNoWait(); 
    confirm.WaitUntilExists(); 
    confirm.OKButton.Click(); 
} 

ConfirmDialogHandler confirm = new ConfirmDialogHandler(); 
using (UseDialogOnce udo = new UseDialogOnce(BrowserIe.DialogWatcher, confirm)) 
{ 
    dlgHnd.WaitUntilExists(); 
    confirm.OKButton.Click(); 
} 

答えて

4

これは動作するはずです - :私が見た

BrowserIe.Ie.Image(Find.ByName("login")).ClickNoWait(); 

    AlertDialogHandler d= new AlertDialogHandler(); 
    if(d.Exists()) 
    { 
     log.Debug("got alert dialog when logging in..."); 
     d.OKButton.Click(); 
    } 

    ConfirmDialogHandler confirm = new ConfirmDialogHandler(); 
    if(confirm.Exists()) 
    { 
     { 
      log.Debug("got confirm dialog when logging in..."); 
      confirm.OKButton.Click(); 
     } 

    } 
+0

が、これは動作しますようです。私の場合、確認ポップアップは常にポップアップではなく、いつかははい、いつかはありません。だから私は使用します:if(confirm.exit())....あなたはjavascriptの確認funtionを上書きする方法をより具体的にすることができますか?私はウェブサイトのコードを持っていません。ありがとう。 – Henry

0

例は、すべてのより多くの、このように見えてきましたWaitメソッドが必要です。

この同じ猫を肌する別の方法はtrueを返し、JavaScriptのconfirm関数をオーバーライドすることである。

BrowserIe.RunScript("function confirm(message) { return true; }"); 
関連する問題