如何在 selenium webdriver (python) 中禁用 chrome 的“保存密码”弹出窗口

问题描述 投票:0回答:7

我想在我的 selenium 测试中禁用 chrome 中出现的“保存密码”弹出窗口。我通过 ChromeOptions() 找到了一种方法,但找不到使弹出窗口消失所需的参数或首选项。

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("argument")
python google-chrome selenium webdriver selenium-chromedriver
7个回答
13
投票

要在 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")

5
投票
prefs = {"credentials_enable_service": False,
         "profile.password_manager_enabled": False}
options.add_experimental_option("prefs", prefs)

对我有用


4
投票

以下选项将禁用“保存密码”弹出窗口。但这是在 C# 中。

options.AddUserProfilePreference("credentials_enable_service", false);
options.AddUserProfilePreference("profile.password_manager_enabled", false);

您可以在这里找到python的相关选项


4
投票

在 Chrome 中禁用保存密码弹出窗口的快速解决方法是使用隐身模式(如果您可以接受)。

chrome_options.add_argument("--incognito")

2
投票

以上答案均不适用于我的情况,这方面有什么变化吗? 我在控制台上也没有收到警告...

 prefs = {"credentials_enable_service":False,"profile.password_manager_enabled":False,"profile.default_content_setting_values.notifications" : 2}

0
投票

所选答案不正确,因为它重新定义了 prefs 的值并使用 , 而不是 : 来设置各个值。

用户 ItZzMJ 的回答正确。就我而言,就像这样:

prefs = {"credentials_enable_service": False,
         "profile.password_manager_enabled": False}
options.add_experimental_option("prefs", prefs)

0
投票

所提出的解决方案都不适合我。

我发现的唯一解决方法是:

添加此首选项:

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 模式下下载的问题,因此为这两种方法添加此代码为我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.