Selenium:实例化时"DevTools请求:127.0.0.1:12583/json/version失败"

Dou*_*ell 19 c# selenium google-chrome selenium-chromedriver

当我在Selenium中创建新的Chrome驱动程序而Google Chrome已经在运行时,我正在引用用户设置/数据(通过user-data-dir).系统会打开一个新的Chrome窗口,但我的应用程序会挂起.ChromeDriver控制台每秒都会显示以下错误:DevTools Request: 127.0.0.1:12585/json/version. DevTools request failed

截图: 在此输入图像描述

用于实例化驱动程序的代码:

        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);
Run Code Online (Sandbox Code Playgroud)

如果我不尝试加载用户设置/数据,这将在每个实例中完美地工作.如果我尝试加载用户设置/数据,则只有在设备上没有运行Chrome的情况下才会生效.

版本:

  • Selenium v​​ 2.47.0
  • ChromeDriver v 2.16.333243
  • Chrome v44.0.2403

我该怎么做才能解决这个问题?

r0b*_*077 2

如果有人像我一样在寻找答案;

https://bugs.chromium.org/p/chromedriver/issues/detail?id=2443

此行为是设计使然。Chrome 的两个实例不能同时使用相同的用户数据目录。否则他们会尝试更新同一组文件并导致损坏。因此,如果一个实例已经在运行,尝试使用相同的用户数据目录启动另一个实例将导致第二个实例要求第一个实例打开一个新窗口,然后第二个实例退出。