Cuando creo un nuevo controlador de cromo en Selenium mientras Google Chrome ya se está ejecutando Y estoy haciendo referencia a la configuración/datos de los usuarios (a través user-data-dir ). Se abrirá una nueva ventana de Chrome, pero mi aplicación se bloqueará. La consola de ChromeDriver mostrará el siguiente error cada segundo: DevTools Request: 127.0.0.1:12585/json/version. DevTools request failed
Código para instanciar el controlador:
ChromeDriverService driverService = ChromeDriverService.CreateDefaultService(); //driverService.HideCommandPromptWindow = true; driverService.EnableVerboseLogging = true; string path = Environment.ExpandEnvironmentVariables("%LOCALAPPDATA%\\Google\\Chrome\\User Data"); ChromeOptions options = new ChromeOptions(); options.AddArguments("user-data-dir=" + path); options.AddArguments("--start-maximized"); options.AddArguments("--disable-extensions"); IWebDriver driver = new ChromeDriver(driverService, options);Esto funcionará perfectamente bien en todos los casos si no intento cargar la configuración/datos del usuario. Si intento cargar la configuración o los datos del usuario, solo funcionará si no hay una instancia de Chrome ejecutándose en el dispositivo.
Versiones:
¿Qué puedo hacer para resolver esto?
Si alguien estaba buscando una respuesta como yo;
https://bugs.chromium.org/p/chromedriver/issues/detail?id=2443
Este comportamiento es por diseño. Dos instancias de Chrome no pueden usar el mismo directorio de datos de usuario al mismo tiempo. De lo contrario, intentarían actualizar el mismo conjunto de archivos y causar corrupciones. Entonces, si una instancia ya se está ejecutando, intentar iniciar otra instancia usando el mismo directorio de datos de usuario hará que la segunda instancia le pida a la primera instancia que abra una nueva ventana, y luego la segunda instancia saldrá.