es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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:

Tags:  , , , ,

Answer

  1. Avatar for 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 argumento chrome_options ha sido obsoleto, puede reemplazarlo con options en la línea driver = webdriver.Chrome(service=s, chrome_options=options).

    El código actualizado debería verse así:

    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('--profile-directory=Default')
    driver = webdriver.Chrome(service=s, options=options)
    
    driver.get("https://www.instagram.com")
    

    Esto debería abrir el sitio web en su instancia existente de Chrome.

Comments are closed.