ultrafunkamsterdam / undetected-chromedriver

Custom Selenium Chromedriver | Zero-Config | Passes ALL bot mitigation systems (like Distil / Imperva/ Datadadome / CloudFlare IUAM)
https://github.com/UltrafunkAmsterdam/undetected-chromedriver
GNU General Public License v3.0
9.71k stars 1.14k forks source link

The add_experimental_option is broken since 3.1.0 #495

Open casper-hansen opened 2 years ago

casper-hansen commented 2 years ago

Basic code below that causes the error

from selenium import webdriver
import undetected_chromedriver as UC

options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", prefs)
options.add_experimental_option('excludeSwitches', ['enable-logging', "enable-automation"])
options.add_experimental_option("useAutomationExtension", False)

driver = uc.Chrome(browser_executable_path=driver_path, options=options)

driver.get(url)

Here is the stack trace from the drive instantiation (note, it is not just excludeSwitches that is the problem)

    driver = uc.Chrome(
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\undetected_chromedriver\__init__.py", line 369, in __init__
    super(Chrome, self).__init__(
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 93, in __init__
    RemoteWebDriver.__init__(
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 268, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\undetected_chromedriver\__init__.py", line 552, in start_session
    super(selenium.webdriver.chrome.webdriver.WebDriver, self).start_session(
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 359, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
    self.error_handler.check_response(response)
  File "C:\Users\caspe\miniconda3\envs\cmcbot\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: excludeSwitches
kaliiiiiiiiii commented 1 year ago

You can try it with https://github.com/kaliiiiiiiiii/Selenium-Profiles