I'm using the Python package Undetected Chromedriver as I need to be able to log into a Google account with the webdriver, and I want to pass the options {"credentials_enable_service": False, "profile.password_manager_enabled": False}
to the driver so that it doesn't bring up the popup to save the password. I was trying to pass those options using:
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)
The argument --start-maximized
works perfectly fine, and if I run the code with just that it starts maximised as intended. However, when adding the experimental options and running the code it returns the error:
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: prefs
So I thought that I would try to pass the arguments as Desired Capabilities instead, making the code:
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)
While this code runs and doesn't generate any errors, it also doesn't do anything at all. The password popup still shows up, and the driver doesn't even start maximised, despite the fact that the latter part worked as an option.
So my question is: how do I correctly pass Desired Capabilities to the Undetected Chromedriver? Or, alternatively: how do I correctly pass the Experimental Options to the Undetected Chromedriver?
'prefs', {'credentials_enable_service': False, 'profile': {'password_manager_enabled': False}
– Eocene