admin管理员组

文章数量:1277902

I am trying to launch a headless Chrome WebDriver using Selenium in Python. However, I keep encountering this error:

seleniummon.exceptions.SessionNotCreatedException: Message: session not created: probably user data directory is already in use, 
please specify a unique value for --user-data-dir argument, or don't use --user-data-dir

Here is my current implementation:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

def createModel():
    service = Service(ChromeDriverManager().install())
    options = webdriver.ChromeOptions()
    
    # Specifying user data directory
    options.add_argument("--user-data-dir=/tmp/selenium-user-data")  
    options.add_argument("--headless=new")
    options.add_argument("--start-maximized")

    driver = webdriver.Chrome(service=service, options=options)
    return driver

driver = createModel()
driver.get(";)
print(driver.title)
driver.quit()

What I Have Tried:

  1. Removing --user-data-dir → Still getting the error.
  2. Using a unique temp directory for --user-data-dir:
    import tempfile
    options.add_argument(f"--user-data-dir={tempfile.mkdtemp()}")
    
    Still, the error persists.
  3. Killing existing Chrome processes using pkill -9 chrome before running Selenium → No effect.
  4. Running Chrome without headless mode → The error persists.

Additional Information:

  • OS: Ubuntu 22.04
  • Chrome Version: (latest stable version)
  • Selenium Version: (latest)
  • Chromedriver Version: (latest via webdriver_manager)
  • Running inside a Docker container? No

I am trying to launch a headless Chrome WebDriver using Selenium in Python. However, I keep encountering this error:

seleniummon.exceptions.SessionNotCreatedException: Message: session not created: probably user data directory is already in use, 
please specify a unique value for --user-data-dir argument, or don't use --user-data-dir

Here is my current implementation:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

def createModel():
    service = Service(ChromeDriverManager().install())
    options = webdriver.ChromeOptions()
    
    # Specifying user data directory
    options.add_argument("--user-data-dir=/tmp/selenium-user-data")  
    options.add_argument("--headless=new")
    options.add_argument("--start-maximized")

    driver = webdriver.Chrome(service=service, options=options)
    return driver

driver = createModel()
driver.get("https://www.google")
print(driver.title)
driver.quit()

What I Have Tried:

  1. Removing --user-data-dir → Still getting the error.
  2. Using a unique temp directory for --user-data-dir:
    import tempfile
    options.add_argument(f"--user-data-dir={tempfile.mkdtemp()}")
    
    Still, the error persists.
  3. Killing existing Chrome processes using pkill -9 chrome before running Selenium → No effect.
  4. Running Chrome without headless mode → The error persists.

Additional Information:

  • OS: Ubuntu 22.04
  • Chrome Version: (latest stable version)
  • Selenium Version: (latest)
  • Chromedriver Version: (latest via webdriver_manager)
  • Running inside a Docker container? No
Share Improve this question asked Feb 24 at 10:15 Ammar AhmedAmmar Ahmed 295 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

Remove the ChromeDriverManager code bit as this is not required for the latest Selenium and remove options.add_argument("--user-data-dir=/tmp/selenium-user-data").

Run it in incognito mode and see if that works.

You need to keep everything basic and at its default.

本文标签: