我想在我的 selenium 测试中禁用 chrome 中出现的“保存密码”弹出窗口。我通过 ChromeOptions() 找到了一种方法,但找不到使弹出窗口消失所需的参数或首选项。
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("argument")
要在 Selenium 测试中禁用
save password
中的 Google Chrome
弹出窗口,您可以使用以下代码块:
from selenium import webdriver
chrome_opt = webdriver.ChromeOptions()
prefs = {"credentials_enable_service": False,
"profile.password_manager_enabled": False}
chrome_opt.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_opt, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("https://google.com")
prefs = {"credentials_enable_service": False,
"profile.password_manager_enabled": False}
options.add_experimental_option("prefs", prefs)
对我有用
以下选项将禁用“保存密码”弹出窗口。但这是在 C# 中。
options.AddUserProfilePreference("credentials_enable_service", false);
options.AddUserProfilePreference("profile.password_manager_enabled", false);
您可以在这里找到python的相关选项
在 Chrome 中禁用保存密码弹出窗口的快速解决方法是使用隐身模式(如果您可以接受)。
chrome_options.add_argument("--incognito")
以上答案均不适用于我的情况,这方面有什么变化吗? 我在控制台上也没有收到警告...
prefs = {"credentials_enable_service":False,"profile.password_manager_enabled":False,"profile.default_content_setting_values.notifications" : 2}
所选答案不正确,因为它重新定义了 prefs 的值并使用 , 而不是 : 来设置各个值。
用户 ItZzMJ 的回答正确。就我而言,就像这样:
prefs = {"credentials_enable_service": False,
"profile.password_manager_enabled": False}
options.add_experimental_option("prefs", prefs)
所提出的解决方案都不适合我。
我发现的唯一解决方法是:
添加此首选项:
prefs = {
"plugins.always_open_pdf_externally": True,
"download.default_directory": DOWNLOAD_PATH,
}
然后点击下载按钮后运行下面的代码:
def enable_download(browser):
browser.command_executor._commands["send_command"] = (
"POST",
f"/session/{browser.session_id}/chromium/send_command",
)
params = {
"cmd": "Page.setDownloadBehavior",
"params": {"behavior": "allow", "downloadPath": DOWNLOAD_PATH},
}
browser.execute("send_command", params)
自 2017 年以来,此方法只需要在 headless 上启用下载,但随着 chromedriver 120 的新版本,我也开始面临在 headful 模式下下载的问题,因此为这两种方法添加此代码为我解决了这个问题。