Отключить флаг уведомления не работает в обоих браузерах - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь запустить веб-сайт через селен, но уведомление "хочет: показать уведомления" продолжает появляться и блокировать щелчки в моих скриптах. Уведомление

Я знаю, мне нужно дать браузерам аргументы, необходимые для их отключения, но они не проходят. В моем вопросе упоминаются как Chrome, так и Firefox, потому что мне все равно, какой из них закончится. Если вы поможете мне заставить одного из них работать, я счастлив.

Я использую Python 3.6.5; селен 3,141; Chrome версия 74.0.3729.157 (Официальная сборка) (64-разрядная версия); firefox квант 66.0.5 (64-бит); geckodriver v0.24.0 windows 64bit; ChromeDriver 74.0.3729.6 Windows 64 бит. Все необходимые файлы находятся в PATH. Сценарии Selen прекрасно взаимодействуют с веб-сайтом в обоих браузерах.

Я попытался включить профили с уже сохраненными параметрами браузера, но браузер не смог загрузить профили должным образом. Я попытался дать аргумент параметров драйвера браузера с соответствующими флагами, но безрезультатно (подробнее об этом в разделе кода).

Вот мои настройки для Chrome:

options = webdriver.ChromeOptions()
options.add_extension("uBlock.crx")  # loads uBlock origin extension, succesful
options.add_argument("--incognito")  # works, results in session being incognito
options.add_argument("--disable-notifications")  # still shows the notifications
driver = webdriver.Chrome(chrome_options=options)  # launch the session

Это создает сеанс chrome, управляемый селеном, благодаря которому остальные сценарии успешно выполняют операции на странице.

Я также попробовал следующий фрагмент, который также не работал:

options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
options.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=options)

Для Firefox, вот последняя вещь, которую я пробовал, которая также не работала:

options = webdriver.FirefoxOptions()
options.set_preference("dom.webnotifications.enabled", False)
options.set_preference("dom.push.enabled", False)
driver = webdriver.Firefox(firefox_options=options)
driver.install_addon("C:\\Users\\ChowderII\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\ik9e2pqc.selenium\\extensions\\uBlock0@raymondhill.net.xpi")  # successfully loads uBlock extension

Это создает сеанс firefox, управляемый селеном, благодаря которому остальные скрипты успешно выполняют операции на странице.

Я попытался передать флаги как options объект и profile объект, без разницы.

Я ожидаю, что всплывающее окно с уведомлением не будет отображаться, но оно все равно появляется.

Спасибо, кто может мне помочь!

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