C# Selenium使用当前配置文件启动Edge(Chromium)的新实例
我正在使用C#/Selenium 3来启动和控制Edge(Chromium)的实例。我的一个要求是,由我的代码启动的任何Edge实例都应该使用默认配置文件(如果您正常打开它,Edge将使用该配置文件)。通过使用user data dir参数,我可以对Edge的一个实例执行此操作。但是如果我尝试启动另一个实例,那么在新的web驱动程序窗口中会出现几个错误(访问被拒绝,无法创建缓存,读取代理管道时出错:管道已结束)。我猜第一个实例正在使用用户数据目录。我是否需要以某种方式创建配置文件的副本C# Selenium使用当前配置文件启动Edge(Chromium)的新实例,c#,selenium,microsoft-edge,C#,Selenium,Microsoft Edge,我正在使用C#/Selenium 3来启动和控制Edge(Chromium)的实例。我的一个要求是,由我的代码启动的任何Edge实例都应该使用默认配置文件(如果您正常打开它,Edge将使用该配置文件)。通过使用user data dir参数,我可以对Edge的一个实例执行此操作。但是如果我尝试启动另一个实例,那么在新的web驱动程序窗口中会出现几个错误(访问被拒绝,无法创建缓存,读取代理管道时出错:管道已结束)。我猜第一个实例正在使用用户数据目录。我是否需要以某种方式创建配置文件的副本 Edge
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);
出现此问题是因为为两个实例配置了相同的
用户数据目录
路径。用户数据目录将被第一个实例锁定,当目录正在使用时,第二个实例将异常失败。应避免同时使用相同的用户数据目录启动Edge WebDriver实例
如果不再需要第一个Edge WebDriver实例,可以使用driver.Quit()
关闭它,然后可以使用相同的用户数据目录
路径启动第二个实例。请记住,在使用完WebDriver实例后关闭它是一种很好的做法
如果您仍然需要使用第一个实例,并且希望同时启动第二个实例,则可以将用户数据目录
的副本创建为用户数据1、用户数据2、用户数据3等。然后,您可以为不同的Edge WebDriver实例使用不同的用户数据目录
路径。有关更多详细信息,请参阅