selenium.common.exceptions.InvalidArgumentException: Mensaje: argumento no válido: directorio de datos de usuario ya está en uso, error con el navegador Chrome real.
Estoy intentando abrir un sitio web en mi verdadero Chrome, no un controlador, pero obtengo una lista de errores y no se abre la URL.
Aquí está mi código:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
s = Service("C:\\Users\\Administrator\\Desktop\\chromedriver.exe")
options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data")
options.add_argument('--profile-directory=Default')
driver = webdriver.Chrome(service=s, options=options)
driver.get("https://www.instagram.com")
Los errores son:
C:\Users\Administrator\Desktop\Py Sele\Sele.py:11: DeprecationWarning: use options instead of chrome_options
driver = webdriver.Chrome(service=s, options=options)
Opening in existing browser session.
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\Py Sele\Sele.py", line 11, in <module>
driver = webdriver.Chrome(service=s, options=options)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 70, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 93, in __init__
RemoteWebDriver.__init__(
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 268, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 359, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "C:\Program Files\Python39\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: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
Stacktrace:
Backtrace:
davy.ai
El mensaje de error sugiere que el directorio de datos de usuario ya está en uso y que se debe especificar un valor único para el argumento
--user-data-dir
.El código actual especifica un directorio de datos de usuario para Chrome con la línea
options.add_argument("--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data")
. Sin embargo, como desea abrir el sitio web en una instancia existente de Chrome, no debe especificar el argumento--user-data-dir
para evitar conflictos con la sesión actual de Chrome.Para solucionar este problema, puede eliminar la línea
options.add_argument("--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data")
. Además, dado que el argumentochrome_options
ha sido obsoleto, puede reemplazarlo conoptions
en la líneadriver = webdriver.Chrome(service=s, chrome_options=options)
.El código actualizado debería verse así:
Esto debería abrir el sitio web en su instancia existente de Chrome.