如何使用Selenium Webdriver(C#)在Chrome中处理浏览器身份验证?

时间:2017-07-18 16:21:22

标签: c# selenium selenium-webdriver webdriver

我正在使用C#为selenium web驱动程序编写Chrome浏览器的自动化脚本。我陷入了在同一个浏览器中打开多个选项卡的情况,我需要导航到浏览器的第一个选项卡,并需要在身份验证对话框中重新输入登录凭据。

请在授权窗口中找到以下屏幕截图:

enter image description here

我无法导航到第一个标签但无法传递用户名和&密码。我在Stackoverflow中找到了一些答案,并在我的脚本中尝试过,但没有任何事情是正确的。这是我的示例代码:

WebDriverWait wait = new WebDriverWait(driver, 10);
IAlert alert = wait.Until(ExpectedConditions.AlertIsPresent());
alert.SetAuthenticationCredentials(username, pwd);

执行上述代码后,将出现以下错误:

  

WebDriverWait有一些无效的参数。   参数'2':无法从'int'转换为'System.TimeSpan'

Chrome浏览器是否有任何特定代码?我正在使用Visual Studio 2008。

3 个答案:

答案 0 :(得分:1)

尝试获取此类网址......

driver.get("http://username:password@www.domain.com");

像这篇帖子这样使用Alert类(How to handle authentication popup with Selenium WebDriver using Java)显然只适用于IE。

        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
        IAlert alert = wait.Until(ExpectedConditions.AlertIsPresent());
        alert.SetAuthenticationCredentials("username", "password")

答案 1 :(得分:0)

看一下本教程http://toolsqa.com/selenium-webdriver/autoit-selenium-webdriver/

我使用Java完成了这个,我假设您可以以相同的方式使用AutoIt dll for C#。

答案 2 :(得分:0)

另一种方法:编写chrome扩展名,该扩展名将在chrome.webRequest.onAuthRequired上监听并提供凭据。

文档:https://developer.chrome.com/extensions/webRequest#event-onAuthRequired