【问题标题】:Selenium Launch a new instance of Edge (Chromium) using the current ProfileSelenium 使用当前配置文件启动 Edge (Chromium) 的新实例
【发布时间】:2021-08-24 02:40:27
【问题描述】:

我正在使用 C#/Selenium 3 来启动和控制 Edge (Chromium) 的实例。我的要求之一是我的代码启动的任何 Edge 实例都应使用默认配置文件(如果您正常打开 Edge 则使用该配置文件)。我可以使用 user-data-dir 参数对 Edge 的一个实例执行此操作。但是,如果我尝试启动另一个实例,则会在新的 Web 驱动程序窗口中出现几个错误(访问被拒绝、无法创建缓存、读取代理管道时出错:管道已结束)。我猜 user-data-dir 正在被第一个实例使用。我需要以某种方式创建个人资料的副本吗?

EdgeDriverService edgeDriverService = EdgeDriverService.CreateChromiumService(webDriverPath);
edgeDriverService.HideCommandPromptWindow = !debug;

EdgeOptions edgeOptions = new ()
{
    UseChromium = true
};

edgeOptions.AddArgument("profile-directory=Default");
edgeOptions.AddArgument(@"user-data-dir=C:\Users\xxxxxx\AppData\Local\Microsoft\Edge\User Data");

this._webDriver = new EdgeDriver(edgeDriverService, edgeOptions);

【问题讨论】:

    标签: c# selenium microsoft-edge


    【解决方案1】:

    您遇到了问题,因为为两个实例配置了相同的 user-data-dir 路径。用户数据目录将被第一个实例锁定,第二个实例将失败并出现异常,因为该目录正在使用中。您应该避免同时使用相同的user-data-dir 启动 Edge WebDriver 实例。

    如果您不再需要第一个 Edge WebDriver 实例,您可以使用driver.Quit() 将其关闭,然后您可以使用相同的user-data-dir 路径启动第二个实例。请记住,最好在使用完 WebDriver 实例后关闭它。

    如果你还需要使用第一个实例,并且想同时启动第二个实例,你可以创建user-data-dir的副本作为用户数据1、用户数据2、用户数据3等。然后你可以使用不同的user-data-dir 不同 Edge WebDriver 实例的路径。更详细的信息可以参考this answer

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 2019-09-28
      相关资源
      最近更新 更多