Selenium Chromedriver - Нажмите Отмена Всплывающего окна Chrome Authentication - PullRequest
0 голосов
/ 05 апреля 2019

Я использую приложение VPN Chrome для приложения на Python.Всякий раз, когда я запускаю экземпляр Chrome, и Chrome начинает загружать веб-сайт до того, как надстройка VPN готова, появляется следующее всплывающее окно.Как только я нажимаю кнопку отмены, аддон VPN обычно готов, и я могу получить доступ к Интернету без проблем.

Я ищу способ нажать кнопку Отмена с помощью Selenium.

Что я пробовал до сих пор:

  • Установить домашнюю страницув Chrome Settings -> всплывающее окно не появляется, потому что настройки не являются веб-сайтом, после короткого промежутка времени. я могу продолжить без проблем большую часть времени.Время от времени всплывающее окно все еще появляется.

  • Использование webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform() Когда я пытаюсь это сделать, сценарий останавливается, пока я не нажму кнопку Отмена вручную, затем действиеказнены.То же самое происходит с driver.get(url) и driver.switch_to.alert()

Спасибо!

Screenshot

Редактировать 1 (НастройкаПараметры Chrome, позволяющие не отображать уведомления и информационные панели, не решают проблему):

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import selenium.common.exceptions

options = Options()
options.headless = False

options.add_argument("user-data-dir=ChromeProfiles\Profile_{}".format(22))
options.add_argument("--profile-directory=profile_1")
options.add_argument("--disable-notifications")
options.add_argument("--disable-infobars")

driver = webdriver.Chrome(options=options, executable_path="chromedriver.exe")

Как видите, команды не выполняются, пока открыто всплывающее окно:

enter image description here

enter image description here

1 Ответ

0 голосов
/ 05 апреля 2019

1) void dismiss () // Нажать на кнопку «Отмена» оповещения.

driver.switchTo().alert().dismiss();

2) void accept () // Нажать на кнопку «ОК»alert.

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

3) String getText () // Для захвата сообщения с предупреждением.

driver.switchTo().alert().getText();    

4) void sendKeys (String stringToSend) // Чтобы отправить некоторые данные для оповещенияbox.

driver.switchTo().alert().sendKeys("Text");

Вы можете сослаться на все это от Гуру 99

Также вы должны посмотреть, какой это тип оповещения, push-уведомление браузера, уведомление браузера,и т.д. ...

Это мои параметры Chrome для отключения уведомлений, оповещений и push-уведомлений

chrome.switches = --incognito;--disable-download-notification;--disable-infobars

Также еще один способ реализации параметров Chrome

ChromeOptions ops = new ChromeOptions();
        ops.addArguments("--disable-notifications");
        ops.addArguments("--disable-infobars");
        System.setProperty("webdriver.chrome.driver", "./lib/chromedriver");
        driver = new ChromeDriver(ops);

НаконецВот документы по драйверу Chrome, которые помогут вам в дальнейшем. Документы ChromeDriver

Редактировать:

driver.switchTo().activeElement();
driver.close()

Или вы можете попробовать

Driver.SwitchTo().frame("NameOfFrame");

Driver.findElement("enter path to cancel button").click();

Driver.SwitchTo().defaultContent();

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...