未检测到的 Chromedriver,AttributeError:“ChromeOptions”对象没有属性“headless”

Dal*_*ump 3 python google-chrome selenium-chromedriver selenium-webdriver undetected-chromedriver

当我运行 Python Selenium 脚本打开网页时出现错误。我尝试卸载并重新安装 selenium、chromeautoinstaller 和未检测到的 chromedriver。我也尝试添加option.add_argument('--headless'). 这些都没有成功,错误仍然存​​在。

这是我的代码:

    def driverInit():
        option = uc.ChromeOptions()
        option.add_argument("--log-level=3")
    
        prefs = {"credentials_enable_service": False,
                 "profile.password_manager_enabled": False,
                 "profile.default_content_setting_values.notifications": 2
                 }
        option.add_experimental_option("prefs", prefs)
        driverr = uc.Chrome(options=option)
        return driverr
    
    def driverInitBuffMarket():
        option = uc.ChromeOptions()
        option.add_argument(
             rf'--user-data-dir=C:\Users\{os.getlogin()}\AppData\Local\Google\ChromeBuff\User Data')  # e.g. C:\Users\You\AppData\Local\Google\Chrome\User Data
        option.add_argument(r'--profile-directory=Default')
        driverr = uc.Chrome(options=option)
        return driver
Run Code Online (Sandbox Code Playgroud)

错误发生在倒数第二行,driverr = uc.Chrome(options=option)

这是错误:

Traceback (most recent call last):
  File "C:\Users\kumpd\OneDrive\Desktop\All Market Bots\BuffMarket Purchase Bot Testing\main.py", line 266, in <module>
    start_buy_monitoring()
  File "C:\Users\kumpd\OneDrive\Desktop\All Market Bots\BuffMarket Purchase Bot Testing\main.py", line 207, in start_buy_monitoring
    driverBuffMarket = driverInitBuffMarket()
                       ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kumpd\OneDrive\Desktop\All Market Bots\BuffMarket Purchase Bot Testing\main.py", line 42, in driverInitBuffMarket
    driverr = uc.Chrome(options=option)
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kumpd\AppData\Local\Programs\Python\Python311\Lib\site-packages\undetected_chromedriver\__init__.py", line 398, in __init__
    if headless or options.headless:
                   ^^^^^^^^^^^^^^^^
AttributeError: 'ChromeOptions' object has no attribute 'headless'
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

Mic*_*ntz 7

截至今天,未检测到的 chromedriver 仍在options.headless其代码中使用。

这是由于selenium 4.13.0刚刚发布的更改而出现的问题:

* remove deprecated headless methods
Run Code Online (Sandbox Code Playgroud)

以下是一些替代方案:

  • 降级到早期的 selenium 版本直到修复。
  • 使用SeleniumBaseUC 模式(未检测到的 chromedriver 的修改版):
* remove deprecated headless methods
Run Code Online (Sandbox Code Playgroud)

这是另一个更高级的重试和点击示例(使用SB()管理器):

from seleniumbase import Driver
import time

driver = Driver(uc=True)
driver.get("https://nowsecure.nl/#relax")
time.sleep(6)
driver.quit()
Run Code Online (Sandbox Code Playgroud)

(这主要是我在这里写的:https://github.com/ultrafunkamsterdam/unDetected-chromedriver/issues/1584#issuecomment-1737963363