Я пытаюсь запустить веб-сайт через селен, но уведомление "хочет: показать уведомления" продолжает появляться и блокировать щелчки в моих скриптах.
Уведомление
Я знаю, мне нужно дать браузерам аргументы, необходимые для их отключения, но они не проходят. В моем вопросе упоминаются как 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
объект, без разницы.
Я ожидаю, что всплывающее окно с уведомлением не будет отображаться, но оно все равно появляется.
Спасибо, кто может мне помочь!