2013-09-23 2 views
1

크롬에서 경고 팝업을 처리하는 데 문제가 있습니다. 다음 오류가 계속 발생합니다. org.openqa.selenium.UnhandledAlertException : 예상치 못한 알림 (세션 정보 : chrome = 29.0.1547.66) (드라이버 정보 : chromedriver = 2.3, platform = Windows NT 5.1 SP3 x86)Chrome 드라이버 (Webdriver)에서 알림 윈도우 처리

여기 제가 지금까지 시도한 바가 있습니다. 오류가 표시되는 페이지로 이동할 때 :

또한 시도했습니다.

Alert alert = driver.switchTo().alert(); 
alert.accept(); 

도 마찬가지입니다.

이 문제에 대한 해결책이 있으면 알려 주시면 감사하겠습니다.

답변

1

ChromeDriver 버전 일 수 있습니다. 항상 최신 버전으로 업데이트하는 것은 좋지 않습니다. 결함이 많습니다.

ChromeDriver win32_2.0을 사용하고 있습니다. 정상적으로 작동합니다. Try that version.

+0

답장을 보내 주셔서 감사합니다. – elcharrua

1

경고를 제대로 처리하지 않으면 실제로 (UnhandledAlertException) 경고가 닫히기 전에 드라이버 인스턴스로 작업을 수행하는 경우입니다.

스텝 1 : 버튼을 클릭 //이 경고를 얻을 이어질 것

스텝 2 : // 다음 단계-2 대신에

처리 경고 할 필요가 드라이버 인스턴스를 사용하여 다른 작업을 수행하면 UnhandledAlertException 예외가 발생합니다.

+0

드라이버 인스턴스를 사용할 수없는 경우 어떻게해야합니까? 내가 드라이버를 사용하지 않고 경고 인스턴스를 만들 수 없기 때문에. 이것은 경고를 처리하기 위해 만든 메서드입니다. \t public static boolean manejarAlertas() { \t \t 부울 alerta = true; \t \t 시도 { \t \t \t \t \t \t // Espero 10 세군도 코모 MAXIMO 케 aparezca 엘 mensaje 드 경고. \t \t \t WebDriverWait wait = new WebDriverWait (driver, 20); \t \t \t 기다림.until (ExpectedConditions.alertIsPresent()); \t \t \t driver.switchTo(). alert(). accept(); \t \t \t // Si esta presente hago click ok. \t \t \t //alert.accept(); \t \t} 캐치 (예외 E) { \t \t \t 기후 변화 = 거짓; \t \t} \t \t return alerta; \t} – elcharrua

+0

WebDriverWait 대신 정적 대기 모드로 시도해보십시오. 나는 Thread.Sleep (3000)을 넣는 것을 의미한다. 시도해보십시오. 작동하는 경우 대기 논리에 대해 생각할 수 있음을 의미합니다. – Santoshsarma

+0

그 일을 시도하고 문제가 지속되면서, 나는 ActionKey를 사용하고 Key.Esc와 그 같은 오류를 누르기까지 노력했다. – elcharrua

0

IE에서이 문제가 발생했습니다. 에서 "0"ImplicityWait 설정으로, 나는 또한 경고에 대한 WebDriverWait했다)
이 무시 = unexpectedAlertBehaviour - https://stackoverflow.com/a/20611297/2872258 제안으로 IEDriver를 만드는 동안 나는 다른 옵션을 설정
1) : 그러나 두 가지 간단한 변화로는 FF에서처럼 작동하기 시작 @Santoshsarma가 말한 바에 따르면 그것은 또 다른 문제였다.

Chrome 용 솔루션 일 수도 있습니다.

0

나는 stackoverflow 오류를 잡으려고 시도하고 그것을 해결하기 위해 나를 위해 일했다.

try 
{ 
    driver.findElement(By.xpath('xpath')).click(); // command that will trigger the alert window 
} 
catch (StackOverflowError e) 
{ 
    driver.switchTo().alert().dismiss(); // or driver.switchTo().alert().accept(); 
    // the rest of the scripts can be added here 
} 
관련 문제