팝업 대화 상자에서 확인을 클릭하려고합니다. 나는 IE9가 WatiN의 대화 처리기와 잘 작동하지 않는다는 것을 읽었다. WatiN-2.1.0.1196-net-4.0을 사용하고 있습니다.WatiN DialogHandler IE9에서 WaitUntilExists 시간이 초과되었습니다.
다음은 제 방법입니다. 기본적으로 경고 페이지로 이동합니다. 해당 페이지에서 한 줄에 개별적으로 삭제를 클릭하거나 여러 개의 확인란을 선택하고 일괄 삭제할 수 있습니다. 개별 경고 삭제 단추 모음에서 첫 번째 삭제 단추를 잡고 있는지 확인합니다. 그렇다면 모두 선택 버튼을 클릭 한 다음 선택한 모든 경고 삭제 버튼을 클릭하십시오.
모든 사항이 끝났으며 삭제 확인 대화 상자가 열렸습니다. 그런 다음 메서드는 browser.waituntilexists()에서 시간 초과됩니다.
대기 시간을 늘려 보았습니다. DialogHandler, ConfirmDialogHandler, AlertDialogHandler 등의 핸들러 유형을 전환 해 보았습니다. 그 중 아무 것도 팝업 창이 나타나지 않는 것 같습니다.
이 대화 상자를 확인할 수 있도록 해결 방법이 필요합니다.
private void DeleteAlerts(Browser browser)
{
browser.GoTo(URLs.CompleteUrl + "/alerts.aspx?apid=" + PID);
while (browser.Page<AlertsAspx>().deleteMessage.Exists)
{
var handler = new ConfirmDialogHandler();
browser.Page<AlertsAspx>().SelectAll.Click();
using (new UseDialogOnce(browser.DialogWatcher, handler))
{
//Assert.Fail("Never Sees Dialog");
browser.Page<AlertsAspx>().Delete.ClickNoWait();
handler.WaitUntilExists(50);
handler.OKButton.Click();
browser.WaitForComplete();
}
}
}
핸들러를 아직 연결 했습니까? 이벤트처럼 스핀해야합니다. – Botonomous
유선이란 무엇입니까? 나는이 줄을 가지고있다 : var handler = new ConfirmDialogHandler(); –
혼동을 피하기 위해 "브라우저"변수는 이미 올바른 페이지에있는 IE 인스턴스입니다. 이런 이유로 새로운 IE 객체를 선언 할 필요가 없습니다. 마찬가지로, 나는 < and the > 사이의 페이지 클래스의 정적 인스턴스를 다소 생성하는 페이지 클래스를 가지고있다. 그래서 "browser.Page()"이라고 말하면 해당 페이지에 미리 정의 된 요소가 여러 개 있다고 선언합니다. 삭제는 해당 페이지의 버튼입니다. –