2017-08-04 76 views
0

我试图打开两个实例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"); 

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

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

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

问题是由用户配置文件(浏览器选项),并通过移除个人资料造成的,一切工作正常。

但是,对我来说,使用相同的配置是强制性的。

任何指导会有所帮助。

谢谢。

回答

1

这可能是因为您使用的分析单个文件发生。

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

文章链接: -

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

希望它会帮助你:)

+0

这是一个很好的伎俩。但我在这里有一个问题:当我用用户名和密码登录时,我爬行的网站(不是谷歌)对会话和浏览器数据很敏感(登录后,没有人可以从不同的计算机登录此帐户,甚至不同浏览器,除了相同的浏览器和相同的配置文件,我在这里做的)。在将新配置文件dir传递给第二个实例之后,我使用第一个浏览器登录,刷新第二个浏览器并按照我的意愿自动登录。我的问题是,如果我改变第一个实例的cookie值会发生这种情况(因为我有时需要这样做) – Efe

+0

无论如何,这对我有效。谢谢 – Efe

+0

令人惊叹。谢谢 –

相关问题