Handling Authentication dialog box using AutoIT in Selenium


As we know Selenium is an automation tool for web based applications and it handles only web elements and popups which triggered from web pages. Sometimes we get Window based popups like Authentication dialog box, Security warnings while using the web pages. The question would be how to handle these popups from Selenium?

The answer would be there is no straight forward method or command in selenium to handle these popups. We can use getAlert() and ChooseOKOnNextConfirmation() methods only when the popups are triggered from web pages.



In this scenario, we need to go for AutoIT scripts which can handle these kind of popups. These scripts can be integrated with Selenium code. Follow these steps to handle Authentication dialog box using Selenium and AutoIT.

1. Download AutoIT tool. It can be downloaded from http://www.autoitscript.com/site/autoit/downloads/

Note: Please download AutoIT Full Installation

2. While installing AutoIT, you will get two options: Run the Script and Edit the Script. If you are going to use the script without any modification, choose Run the Script option. If you want to customize the scripts, choose Edit the Script option (Recommended as we always needs to customize the scripts for our needs. Sometimes we need to create our own scripts.)

3. Once installed you can find all the sample scripts in the Example folder. Assume we have a sample script for handling the Authentication box which is Login.au3 (extension of the AutoIT scripts will be .au3). Right click on that file and choose Edit option. Find the script below:
WinWaitActive("Authentication Required","","20")
If WinExists("Authentication Required") Then
Send("userid{TAB}")
Send("password{Enter}")
EndIf
4.Customize the scripts according to your need.
For example, You can type your username and password in the script.
WinWaitActive("Authentication Required","","20") If WinExists("Authentication Required") Then Send("selenium_user{TAB}") Send("selenium123{Enter}") EndIf

5. Save the file once you modify all the required changes.

6. Now, open the application Aut2Exe which will convert your AutoIT script into EXE format.



7. Now, call this EXE file from your selenium code as below.
@Test
public void testUntitled()
{
Runtime run = Runtime.getRuntime();
Process pp=run.exec("C:\\Program Files\\AutoIt3\\Examples\\Login.exe");
selenium.open(URL);
...................
...................
}

8. Execute you selenium code and check if the AutoIT script handles the Authentication Required dialog box.