Gam*_*r01 6 python selenium python-3.x selenium-webdriver undetected-chromedriver
我正在使用 Python 包未检测到的 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)
Run Code Online (Sandbox Code Playgroud)
这个参数--start-maximized工作得很好,如果我运行代码,它就会按预期最大化。但是,当添加实验选项并运行代码时,它会返回错误:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: prefs
Run Code Online (Sandbox Code Playgroud)
所以我想我应该尝试将参数作为所需的功能传递,从而编写代码:
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)
Run Code Online (Sandbox Code Playgroud)
虽然此代码运行并且不会生成任何错误,但它也根本不执行任何操作。密码弹出窗口仍然显示,驱动程序甚至没有启动最大化,尽管后一部分可以作为一个选项。
所以我的问题是:如何正确地将所需的功能传递给未检测到的 Chromedriver?或者,或者:如何正确地将实验选项传递给未检测到的 Chromedriver?
今年早些时候,进行了一些更改来解决此问题并允许首选项:
https://github.com/ultrafunkamsterdam/unDetected-chromedriver/issues/524
为了处理首选项,对https://github.com/ultrafunkamsterdam/unDetected-chromedriver/blob/master/unDetected_chromedriver/options.py进行了重要更新。
升级到新版本以解决您的问题。
| 归档时间: |
|
| 查看次数: |
15636 次 |
| 最近记录: |