Selenium:打开具有相同配置文件的两个不同ChromeDriver实例

时间:2017-08-04 14:14:30

标签: c# selenium selenium-chromedriver

我正在尝试使用相同的配置文件打开两个ChromeDriver实例:

ChromeDriverService service1 = ChromeDriverService.CreateDefaultService();
ChromeOptions options1 = new ChromeOptions();
options1.AddArguments($"user-data-dir=C:/Users/{Environment.UserName}/AppData/Local/Google/Chrome/User Data/Default");
service1.HideCommandPromptWindow = true;
ChromeDriver driver1 = new ChromeDriver(service1, options1);
driver1.Navigate().GoToUrl("https://www.google.com");

ChromeDriverService service2 = ChromeDriverService.CreateDefaultService();
ChromeOptions options2 = new ChromeOptions();
options2.AddArguments($"user-data-dir=C:/Users/{Environment.UserName}/AppData/Local/Google/Chrome/User Data/Default");
service2.HideCommandPromptWindow = true;
ChromeDriver driver2 = new ChromeDriver(service2, options2);
driver2.Navigate().GoToUrl("https://www.google.com");

问题是第一个驱动程序工作并导航到Google,但第二个,在实例化第二个驱动程序时出现以下异常:

附加信息:抛出了一个带有空响应的异常,向URL http://localhost:6949/session的远程WebDriver服务器发送HTTP请求。异常的状态是ReceiveFailure,消息是:基础连接已关闭:接收时发生意外错误。

我还从不同的二进制文件中执行了每个驱动程序,但第二个驱动程序遇到了同样的问题。

问题是由用户个人资料(Chrome选项)引起的,通过删除个人资料,一切正常。

但是,对我来说,使用相同的个人资料是强制性的。

任何指导都会有所帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

这可能会发生,因为您使用单个文件进行性能分析。

我找到了一篇文章,您可以在其中找到复制配置文件的步骤。 按照说明操作,并在第二个webdriver实例中传递配置文件的副本。

文章链接: -

https://support.4it.com.au/article/copy-google-chrome-profile-new-user-profile-windows/

希望它会对你有所帮助:)。