我正在使用 Python 包Undetected Chromedriver,因为我需要能够使用 webdriver 登录 Google 帐户,并且我想将选项传递{"credentials_enable_service": False, "profile.password_manager_enabled": False}
给驱动程序,以便它不会弹出保存密码的弹出窗口。我试图通过这些选项使用:
import undetected_chromedriver.v2 as uc
uc_options = uc.ChromeOptions()
uc_options.add_argument("--start-maximized")
uc_options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False})
driver2 = uc.Chrome(options=uc_options)
这个论点--start-maximized
工作得很好,如果我运行代码只是它开始按预期最大化。但是,当添加实验选项并运行代码时,它会返回错误:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: prefs
所以我想我会尝试将参数作为 Desired Capabilities 传递,从而编写代码:
import undetected_chromedriver.v2 as uc
uc_options = uc.ChromeOptions()
uc_options.add_argument("--start-maximized")
uc_options.add_experimental_option("prefs", {"credentials_enable_service": False, "profile.password_manager_enabled": False})
uc_caps = uc_options.to_capabilities()
driver2 = uc.Chrome(desired_capabilities=uc_caps)
虽然这段代码运行并且不会产生任何错误,但它也根本没有做任何事情。密码弹出窗口仍然出现,并且驱动程序甚至没有开始最大化,尽管后者作为一个选项工作。
所以我的问题是:如何正确地将 Desired Capabilities 传递给 Undetected Chromedriver?或者,或者:如何正确地将实验选项传递给未检测到的 Chromedriver?