我很高兴学习如何在此处使用本地cookie数据启动Web驱动程序会话。
浏览器现在开始加载我的书签和cookie(我测试了访问需要授权的网站,我过去已经登录并保存了凭据)。
但是,由于某种原因,我的Web驱动程序实例将无法响应简单的
GoToUrl()
。实际上,命令提示符总是报告会话在60秒后超时。然而,有趣的是,如果我简单地取消添加cookie path参数的行,则以下代码将起作用。 (我已经使用ChromeDrive完成了很多工作。)
ChromeOptions options = new ChromeOptions();
options.AddArgument(string.Format("user-data-dir={0}", "C:/Users/Me/AppData/Local/Google/Chrome/User Data"));
IWebDriver wd = new ChromeDriver(options);
wd.Navigate().GoToUrl("http://www.google.com");
我尝试了其他ChromeDriver重载,例如使用ChromeDriverService的重载,但无济于事。
我的chromedriver.exe显然存在在D:/中(否则我会收到不同的错误消息)。
怎么了?
#1 楼
经过进一步研究后,遇到以下链接:https://github.com/SeleniumHQ/selenium/issues/886
https://code.google.com / p / chromedriver / issues / detail?id = 962
http://peter.sh/experiments/chromium-command-line-switches/
https:// sites.google.com/a/chromium.org/chromedriver/capabilities
尽管我没有看到任何明确的结论,但有人暗示当另一个chrome实例已经打开时会出现问题。
然后确保不会发生这种情况-现在我的webdriver实例将以所需的配置文件打开并可以正常工作。
据我了解,这似乎是预期的行为-您不能同时运行两个实例相同的个人资料您可能会问,为什么我可以毫无问题地运行多个Web驱动程序实例?好吧,发生这种情况是因为实例化一个webdriver对象(没有指定特定的配置文件)会创建一个临时的配置文件。因此,所有打开的实例都在不同的配置文件上运行。
评论
您好..我有和您提到的完全相同的问题。我需要使用相同的共享会话运行多个Web驱动程序实例。我不太了解您在最后一行中关于不同配置文件的发言。.请您解释一下?
–RKodakandla
17年9月2日在17:50
您不能有2个实例运行相同的配置文件。但是,如果您尝试运行Web驱动程序的多个实例而未指定配置文件,则可以使用。为什么呢因为当您不指定一个实例时,会创建一个临时的(并且显然是唯一的)实例,因此不会要求2个实例使用同一概要文件运行-因此,在不指定概要文件的情况下运行多个实例的情况也不例外。
– Veverke
17年3月3日在8:33
好的..但这不是我的选择..如果我不指定一个,则创建的临时配置文件不会共享会话。那是我的主要限制。我需要10个webdriver实例以相同的身份验证运行,因为客户端的IDP不允许同时进行多次登录。一旦创建一个,另一个就注销。
–RKodakandla
17年3月3日在18:01
好吧,我的问题(我的回答试图解释)是我没有成功地简单地运行带有配置文件的Web浏览器。加载配置文件是可行的,但是Web驱动程序无法在任何地方导航。然后,我发现这是因为我触发了多个Web驱动程序实例,并试图让它们全部加载相同的配置文件。使用单个实例执行此操作仅适用于运行加载chrome配置文件的Web驱动程序实例,这是我试图解决的问题。
– Veverke
17年9月4日在9:08
您正在寻找如何使用相同的配置文件运行多个Web驱动程序实例。我没有试图解决这个问题。
– Veverke
17年9月4日在9:08