Selenium WebDriver C# - 绕过Chrome身份验证需要对话框

时间:2018-04-25 04:44:25

标签: c# selenium selenium-webdriver single-sign-on selenium-chromedriver

我遇到了Selenium WebDriver处理Google Chrome身份验证对话框的问题。我已经在网上搜索了2个星期,但我无法得到明确的解决方案。

我有一个约束,即Selenium WebDriver将在用户SYSTEM下的远程Windows 2012 R2服务器中运行,因此运行背景没有 Chrome UI显示。

由于上述约束,AutoIT不起作用,因为它需要UI来处理事件。 Driver.SwitchTo().Alert()似乎也不起作用,因为它根本没有捕获警报(有人说它只适用于IE)。

Driver.Navigate().GoToUrl("https://username:password@url.com")无效,因为我的网站正在使用SSO登录。它将首先导航到https://www.landingsite.com,然后重定向到https://authenticationrequired.com/daM2Sc,其中SSO登录的URL每次都是随机的,所以我无法直接绕过身份验证对话框。

我想通过使用Driver.Url捕获身份验证URL并在URL前面添加我的用户名和密码来使用解决方法,但是由于提示身份验证对话框,驱动程序无法捕获URL并抛出超时异常。

有人说通过向可信站点添加URL会停止提示对话框,但由于某种原因它不起作用。它只适用于IE。

还有其他解决办法吗?

1 个答案:

答案 0 :(得分:0)

我失去了一周时间尝试这样做,当我能做到的时候,我认为这太棒了。这里的Java代码:         WebDriver driver = new ChromeDriver();         driver.get(用户:通过@ URL /); 你必须编码用户并通过。链接编码:https://meyerweb.com/eric/tools/dencoder/

我的Chrome版本65.0.3325.181(官方版本)(64位)