使用Python和Selenium Chrome WebDriver处理通知

9

如何在Python中处理Selenium Chrome WebDriver通知?

尝试过dismiss/accept alertactive element,但似乎通知必须以其他方式处理。此外,所有的谷歌搜索结果都把我带到了不需要的Java解决方案。我是Python的新手。

提前致谢。

enter image description here

5个回答

37

你可以使用Chrome选项来禁用浏览器通知。

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

1
但我只想禁用xdg-open,而不是所有通知。我该怎么解决? - user7862197
2023年仍然在工作 :D - undefined

6

2021年12月,使用ChromeDriver版本:96,处理ChromeDriver/浏览器通知的Python代码结构将如下所示:

from selenium import webdriver    
from selenium.webdriver.chrome.options import Options

# Creating Instance
option = Options()

# Working with the 'add_argument' Method to modify Driver Default Notification
option.add_argument('--disable-notifications')

# Passing Driver path alongside with Driver modified Options
browser = webdriver.Chrome(executable_path= your_chrome_driver_path, chrome_options= option)

# Do your stuff and quit your driver/ browser
browser.get('https://www.google.com')
browser.quit()

2

跟随以下代码使用Python selenium处理通知设置

from selenium import webdriver


from selenium.webdriver.chrome.options import Options

option = Options()

option.add_argument("--disable-infobars")

option.add_argument("start-maximized")

option.add_argument("--disable-extensions")

option.add_experimental_option("prefs", 
{"profile.default_content_setting_values.notifications": 2 
 }) 

注意:1-允许通知,2-阻止通知。

1

2016年12月的上述答案在2020年8月对我无效。我相信Selenium和Chrome都发生了变化。

我正在使用Chrome 84的二进制文件,它被列为当前版本,尽管selenium.dev有一个Chrome 85的二进制文件可用。我必须假设这是一个测试版,因为我没有其他信息。

到目前为止,我只有部分答案,但我认为以下两行代码朝着正确的方向。这是我今晚得到的。我打开了一个测试窗口到Facebook,并且在问题中显示了确切的窗口。pythonjar在2016年12月30日的回答中给出的代码产生了错误消息。这些代码行没有错误,所以我相信这是正确的轨迹。

>>> from selenium.webdriver import ChromeOptions
>>> chrome_options = ChromeOptions()

如果我有时间处理,明天会更新这个内容。

抱歉只回答了部分问题,我希望尽快完成。希望这能帮到你。如果你先解决了问题,请告诉我。


1

使用 Chrome 版本 85.0.4183.83(官方版本)64位和 ChromeDriver 85.0.4183.83

以下是代码,它是可行的

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://www.google.com/")

2020/08/27


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接