как убрать окно предупреждения, нажав кнопку «ОК»? Я видел в группе WebDriver Google, что Саймон добавляет эту функцию. Я не уверен, поддерживается ли это или нет.WebDriver отклоняет окно оповещения
ответ
driver.findElement(By.id("updateButton")).click();
//pop up with id "updateButton" opens
Alert alert = driver.switchTo().alert();
//update is executed
alert.accept();
Посмотрите на 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;};");
Это довольно популярный запрос, поэтому, надеюсь, он скоро будет реализован. Недостатком этих подходов является то, что непросто проверить текст в сообщении. Вы можете уйти в Селен, чтобы сделать это.
Я попытался '() водитель (JavascriptExecutor) .executeScript ("window.confirm = function (msg) {return true;};"); 'но не повезло. Похоже, никто не имеет надежного обходного пути. Я действительно надеюсь, что они скоро это сделают. Спасибо, в любом случае. – zihaoyu
Дважды проверьте, что ваш драйвер ссылается на правильную страницу/фрейм. Я успешно запускаю это, поэтому он должен быть чем-то уникальным с вашей страницей, а не с кодом. – pnewhook
C# код:
IAlert alert = driver.SwitchTo().Alert();
alert.Accept();
System.Threading.Thread.Sleep(milliseconds);
Python код:
driver.switch_to_alert().accept()
См:
сайт-пакеты/селен/WebDriver/дистанционный/webdriver.py
сайт-пакеты/селен/WebDriver/общий/alert.py
Это правильный способ сделать это, особенно после цикла 2012 года. Я не понимаю, почему это не проверяется как ответ на вопрос, потому что это должно быть. – djangofan