2010-08-31 2 views

ответ

17
driver.findElement(By.id("updateButton")).click(); 

//pop up with id "updateButton" opens

Alert alert = driver.switchTo().alert(); 
//update is executed 
alert.accept(); 
+0

Это правильный способ сделать это, особенно после цикла 2012 года. Я не понимаю, почему это не проверяется как ответ на вопрос, потому что это должно быть. – djangofan

8

Посмотрите на issue 27 in the Google Code Issues List. Используйте JavascriptExecutor, чтобы отменить предупреждение браузера:

((JavascriptExecutor)driver).executeScript("window.alert = function(msg){};"); 

Это аналогичное решение для обработки окна подтверждения.

((JavascriptExecutor)driver).executeScript("window.confirm = function(msg){return true;};"); 

Это довольно популярный запрос, поэтому, надеюсь, он скоро будет реализован. Недостатком этих подходов является то, что непросто проверить текст в сообщении. Вы можете уйти в Селен, чтобы сделать это.

+0

Я попытался '() водитель (JavascriptExecutor) .executeScript ("window.confirm = function (msg) {return true;};"); 'но не повезло. Похоже, никто не имеет надежного обходного пути. Я действительно надеюсь, что они скоро это сделают. Спасибо, в любом случае. – zihaoyu

+0

Дважды проверьте, что ваш драйвер ссылается на правильную страницу/фрейм. Я успешно запускаю это, поэтому он должен быть чем-то уникальным с вашей страницей, а не с кодом. – pnewhook

2

C# код:

IAlert alert = driver.SwitchTo().Alert(); 
alert.Accept(); 
System.Threading.Thread.Sleep(milliseconds); 
1

Python код:

driver.switch_to_alert().accept() 

См:

сайт-пакеты/селен/WebDriver/дистанционный/webdriver.py

сайт-пакеты/селен/WebDriver/общий/alert.py

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

  • Нет связанных вопросов^_^