Skip to content

[πŸ› Bug]: selenium.common.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Β #15231

@rajeshjha9801

Description

@rajeshjha9801

What happened?

Chrome Version : 132.0.6834.159

Language : Python 3.8

Docker chrome installation
FROM python:3.8

RUN wget --no-check-certificate -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'

RUN wget --no-check-certificate -O /code/chromedriver.zip https://storage.googleapis.com/chrome-for-testing-public/132.0.6834.159/linux64/chromedriver-linux64.zip

Library:
selenium==4.27.1
webdriver-manager==4.0.2
chromedriver-py==132.0.6834.159
chromedriver-binary-auto == 0.3.1

Code snippets:

from selenium import webdriver
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.chrome.service import Service as ChromeService

def create_chrome_instance() -> WebDriver:
options = get_chrome_options()
os_type = platform.system()
if os_type == 'Windows':
driver: WebDriver = webdriver.Chrome(options=options)
else:
driver: WebDriver = webdriver.Chrome(service=ChromeService(executable_path="/code/chromedriver-linux64/chromedriver"), options=options)
return driver

def get_chrome_options():
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument("--window-size=1600,744")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--incognito")
chrome_prefs = {}
options.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
# options.add_argument("--start-maximized")
options.add_argument("--headless=old")

os_type = os.getenv('ENVIRONMENT_TYPE')

# if os_type == 'CLOUD':
#     pass
#     options.add_argument("--headless")
if os_type == 'Windows':
    pass
else:
    options.add_argument("--headless=old")

return options

Error:
File "/code/ey-exim-ps-seaigmenquiry-ice-gate/Sea_Igm_Enquiry_BusinessLogic.py", line 64, in execute
driver = chrome_instance_manager.get_new_chrome_instance(scn_no)
File "/code/ey-exim-ps-seaigmenquiry-ice-gate/core/ChromeInstanceManager.py", line 50, in get_new_chrome_instance
chrome_instance = create_chrome_instance()
File "/code/ey-exim-ps-seaigmenquiry-ice-gate/core/ChromeInstanceManager.py", line 66, in create_chrome_instance
driver: WebDriver = webdriver.Chrome(service=ChromeService(executable_path="/code/chromedriver-linux64/chromedriver"), options=options)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in init
super().init(
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 66, in init
super().init(command_executor=executor, options=options)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 241, in init
self.start_session(capabilities)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 329, in start_session
response = self.execute(Command.NEW_SESSION, caps)["value"]
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 384, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 232, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.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

How can we reproduce the issue?

Code shared in description

Code snippets:

from selenium import webdriver
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.chrome.service import Service as ChromeService

def create_chrome_instance() -> WebDriver:
options = get_chrome_options()
os_type = platform.system()
if os_type == 'Windows':
driver: WebDriver = webdriver.Chrome(options=options)
else:
driver: WebDriver = webdriver.Chrome(service=ChromeService(executable_path="/code/chromedriver-linux64/chromedriver"), options=options)
return driver

def get_chrome_options():
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument("--window-size=1600,744")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--incognito")
chrome_prefs = {}
options.experimental_options["prefs"] = chrome_prefs
chrome_prefs["profile.default_content_settings"] = {"images": 2}
# options.add_argument("--start-maximized")
options.add_argument("--headless=old")

Relevant log output

File "/code/ey-exim-ps-seaigmenquiry-ice-gate/Sea_Igm_Enquiry_BusinessLogic.py", line 64, in execute
driver = chrome_instance_manager.get_new_chrome_instance(scn_no)
File "/code/ey-exim-ps-seaigmenquiry-ice-gate/core/ChromeInstanceManager.py", line 50, in get_new_chrome_instance
chrome_instance = create_chrome_instance()
File "/code/ey-exim-ps-seaigmenquiry-ice-gate/core/ChromeInstanceManager.py", line 66, in create_chrome_instance
driver: WebDriver = webdriver.Chrome(service=ChromeService(executable_path="/code/chromedriver-linux64/chromedriver"), options=options)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in init
super().init(
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/chromium/webdriver.py", line 66, in init
super().init(command_executor=executor, options=options)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 241, in init
self.start_session(capabilities)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 329, in start_session
response = self.execute(Command.NEW_SESSION, caps)["value"]
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 384, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 232, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.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

Operating System

Debian Python Image python:3.8

Selenium version

4.27.1

What are the browser(s) and version(s) where you see this issue?

Chrome Version : 132.0.6834.159

What are the browser driver(s) and version(s) where you see this issue?

Chrome headless

Are you using Selenium Grid?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    G-chromedriverRequires fixes in ChromeDriver

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions