2016-08-19 3 views
1

Я использую Java и Selenium написать тест. Мой Chrome Browser версии 52.0, а мой драйвер selenium - 2.53. У меня есть кнопка на моей целевой веб-странице, после нажатия которой отображается предупреждение. Я всегда использовал:не может обрабатывать предупреждающее сообщение

try{ wait.until(ExpectedConditions.elementToBeClickable(By.xpath("blabla"))).click(); 
        Thread.sleep(1000); 
        wait.until(ExpectedConditions.alertIsPresent()); 
        driverChrome.switchTo().alert().accept(); 
    } 
    catch(Exception e){ 
    e.printStackTrace(); 
    } 

обрабатывать предупреждения, но с утра, когда тест нажимает на кнопку оповещения выскакивает, но затем сразу же после этого он бросает:

org.openqa.selenium.WebDriverException: unknown error: cannot determine loading status 
from unexpected alert open 
(Session info: chrome=52.0.2743.116) 
(Driver info: chromedriver=2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 33 milliseconds 

это не делает даже попасть во вторую и третью линии! ошибка выдается в первой строке

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("blabla"))).click(); 

ответ

2

Вы используете chromedriver версии 2.20.

Здесь: https://bugs.chromium.org/p/chromedriver/issues/detail?id=1224&colspec=ID%20Status%20Pri%20Owner%20Summary было сказано, что в версии 2.22 эта проблема исправлена.

Итак, если возможно, вы можете проверить, исправлена ​​ли ваша проблема, обновив версию хромированного ребра до версии 2.22.

1

я наткнулся на эту же вещь с Chrome, когда кнопка была нажата время была внутри фрейма. Просто запустил тест в firefox. Обратитесь к этим 2 вопросам авторизованы хрома багтрекер -

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1362

https://bugs.chromium.org/p/chromedriver/issues/detail?id=1224

 try{ 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("blabla"))).click(); 

     } 
     catch(Exception e){ 
     e.printStackTrace(); 
     } 
    Thread.sleep(1000); 
         wait.until(ExpectedConditions.alertIsPresent()); 
         driverChrome.switchTo().alert().accept(); 
+0

но он работал вчера! что случилось ? мы должны использовать Chrome :( –

+0

Попробуйте поймать исключение на строке щелчка кнопки, оно выдает исключение WebDriverException и затем проверяет, работает ли код обработки предупреждений. Вы также можете поэкспериментировать со сном – Grasshopper

+0

, пожалуйста, посмотрите на отредактированный вопрос. он выдает ошибку в первой строке, не делает, не получаю thread.sleep –

Смежные вопросы