2011-10-23 3 views
0

내가 웹 사이트에 로그인 정보를 검색 할 watin를 사용하여 클릭합니다. 또 다른 로그인이 이미 윈도우, 다른 곳에서 같은 계정의 웹 사이트의 팝업을 존재라고있는 경우 "다른 세션을 닫습니다?" "예"와 "아니오"의 두 가지 버튼이 있습니다. 이것을 캡처하고 "예"를 클릭해야합니다.watin 캡처 팝업 창은 "예"

나는 누군가가 도움을 줄 수, 팝업의 종류 내가 AlertDialogHandler 및 ConfirmDialogHandler을 시도하지만, 작동하지 않는 것 같다 모른다 ?? 아래는 코드 스 니펫입니다. 감사! 내가 본

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(); 
     } 

    } 

답변

4

이 작동합니다 :

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

메시지의 속도에 따라, 당신은하지 않을 수 있습니다 심지어 Wait 메서드가 필요합니다.

이 같은 고양이를 피부하는 또 다른 방법은 사실 반환, 자바 스크립트 확인 함수를 재정의하는 것입니다

BrowserIe.RunScript("function confirm(message) { return true; }"); 
+0

이 작동합니다 보인다. 내 경우, 확인 팝업이없이 항상 언젠가는, 그래 언젠가, 팝업되지 않습니다. 그래서 사용하는 경우 (confirm.exit()) .... 당신이 자바 스크립트 확인의 연료 소모량을 overrite하는 방법에 대한 자세한 특정 될 수 있을까? 웹 사이트 코드가 없습니다. 감사. – Henry

0

예제는 모든 이상과 같이 보았다 : -

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