#java #selenium #selenium-webdriver
#java #selenium #selenium-webdriver
Вопрос:
Как закрыть оповещение на основе браузера с помощью selenium. Это закрывается приведенным ниже кодом класса robot. Но любой другой способ закрыть это предупреждающее сообщение.
Robot robot = new Robot();
robot.delay(3000);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyPress(KeyEvent.VK_ENTER);
Комментарии:
1. Это оповещение отличается от упомянутого в приведенной выше ссылке. Здесь отображается кнопка Разрешить или отклонить. Более того, приведенный выше код не закрывает это окно предупреждения. Пожалуйста, предложите любой другой метод для решения вышеуказанной проблемы.
2. для Firefox: options.addPreference («dom.webnotifications.enabled», false); для Chrome: prefs.put(«профиль. default_content_setting_values.notifications», 2);
3. Попробовал этот комментарий. Не получается. Также пробовал с вариантом 1. Приведенный ниже код. Пожалуйста, предложите любой другой способ скрыть эту опцию, пожалуйста. Map<Строка, объект> prefs = new HashMap<Строка, объект>(); prefs.put(«профиль. default_content_setting_values.notifications», 2); параметры ChromeOptions = новые ChromeOptions(); options.setExperimentalOption(«префы», prefs);.
4. это выглядит правильно, или вы инициализируете драйвер следующим образом?: driver = new ChromeDriver (параметры);
5. другим вариантом может быть установка необработанного promptbehavior … хотя не уверен, что он справится с этим … используйте: UnexpectedAlertBehaviour promptBehaviorConstant = UnexpectedAlertBehaviour. ОТКЛОНИТЬ; options.setUnhandledPromptBehaviour (promptBehaviorConstant); Это будет запущено при следующем действии. (если открыто необработанное приглашение, драйвер отклонит его.)
Ответ №1:
Вы пробовали устанавливать параметр браузера —
options.addArguments("--disable-notifications");
Комментарии:
1. Вышеупомянутый класс robot работает нормально. Но рассмотрим альтернативные решения, поскольку приведенный выше код завершается сбоем, если мы открыты, при выполнении этого кода открывается любое другое окно.
Ответ №2:
Если это оповещение, оно не должно работать как основное?
Используйте методы драйвера:
driver.switchTo().alert().dismiss(); or driver.switchTo().alert().accept();
Комментарии:
1. Я добавил изображение для этого оповещения в top. Я предполагаю, что это окно уведомления на основе браузера. Основной комментарий выше не работает. Но класс robot только работает. Ищу альтернативный код.