Reputation: 137
I am writing an automation script for Chrome browser in selenium web driver using C#. I got stuck in a scenario where multiple tabs are getting open in the same browser and I need to navigate to the first Tab of a browser and need to re-enter the login credentials in the authentication dialog box.
Please find the below screenshot for authorization window:
I am unable to navigate to the first tab and unable to pass the username & password. I found some answers in the Stackoverflow and tried in my script but nothing went right. Here is my sample code:
WebDriverWait wait = new WebDriverWait(driver, 10);
IAlert alert = wait.Until(ExpectedConditions.AlertIsPresent());
alert.SetAuthenticationCredentials(username, pwd);
After executing the above code, the following error is coming:
WebDriverWait has some invalid arguments. Argument '2': cannot convert from 'int' to 'System.TimeSpan'
Is there any specific code for Chrome browser? I am using Visual studio 2008.
Upvotes: 4
Views: 17330
Reputation: 55
Here is a simple approach to overcome this issue:
baseUrl = "http://" + username + ":" + password + "@" + url;
driver.get(baseUrl + "/");
Using the code above we are providing credentials in the URL, while running the script this will bypass the authentication window successfully.
Refer to the below code for how it is done just after the browser is launched:
WebDriver driver = new FirefoxDriver();
String baseUrl = "http://" + "USERNAME" + ":" + "PASSWORD" + "@" + "xyz.com";
driver.get(baseUrl + "/");
Upvotes: 0
Reputation: 621
Yet another approach: write chrome extension that'll listen on chrome.webRequest.onAuthRequired
and will provide credentials.
Doc: https://developer.chrome.com/extensions/webRequest#event-onAuthRequired
Upvotes: 0
Reputation: 535
Try getting the URL like this...
driver.get("http://username:[email protected]");
Using the Alert class like this post here(How to handle authentication popup with Selenium WebDriver using Java) apparently only works in IE.
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IAlert alert = wait.Until(ExpectedConditions.AlertIsPresent());
alert.SetAuthenticationCredentials("username", "password")
Upvotes: 4
Reputation: 361
Take a look at this tutorial, http://toolsqa.com/selenium-webdriver/autoit-selenium-webdriver/
I have done this using Java, I am assuming you can use the AutoIt dlls for C# in the same manner.
Upvotes: 0