Selenium can not handle the Download file window. We can use third party tools to handle download file window. Some of the tools are AutoIT and Sikuli.
AutoIT: Save the below script with extension as download_file.au3 and compile it then it will generate download_file.exe file.
Once you install Sikuli in system. Write a below script to handle the download window in IE.




AutoIT: Save the below script with extension as download_file.au3 and compile it then it will generate download_file.exe file.
Local $pathToSave=$CmdLine[1]
Local $windHandle=WinGetHandle("[Class:IEFrame]", "")
Local $winTitle = "[HANDLE:" & $windHandle & "]";
;get coordinates of default HWND
Local $ctlText=ControlGetPos ($winTitle, "", "[Class:DirectUIHWND;INSTANCE:1]")
; wait till the notification bar is displayed
Local $color= PixelGetColor ($ctlText[0],$ctlText[1])
while $color <> 0
sleep(500)
$ctlText=ControlGetPos ($winTitle, "", "[Class:DirectUIHWND;INSTANCE:1]")
$color= PixelGetColor ($ctlText[0],$ctlText[1])
wend
; Select save as option
WinActivate ($winTitle, "")
Send("{F6}")
sleep(500)
Send("{TAB}")
sleep(500)
Send("{DOWN}")
sleep(500)
Send("a")
WinWait("Save As")
; activate Save As window
WinActivate("Save As")
; path to save the file is passed as command line arugment
ControlFocus("Save As","","[CLASS:Edit;INSTANCE:1]")
Send($pathToSave)
sleep(500)
;click on save button
ControlClick("Save As","","[TEXT:&Save]")
; wait till the download completes
Local $sAttribute = FileGetAttrib($pathToSave);
while $sAttribute = ""
sleep(500)
$sAttribute = FileGetAttrib($pathToSave)
wend
sleep(2000)
;close the notification bar
WinActivate ($winTitle, "")
Send("{F6}")
sleep(300)
Send("{TAB}")
sleep(300)
Send("{TAB}")
sleep(300)
Send("{TAB}")
sleep(300)
Send("{ENTER}")
Now write the sample java code to use it.import java.io.IOException;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class DownloadFile_IE_AutoIT {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.ie.driver",System.getProperty("user.dir")+"\\IEDriver.exe");
WebDriver driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get("http://www.seleniumhq.org/download/");
driver.findElement(By.xpath("//*[@id='mainContent']/p[9]/a[2]")).sendKeys(Keys.ENTER);
try {
String path="E:\\AutoIT\\test232";
String file="E:\\AutoIT\\download_file.exe"+" "+path;
Runtime.getRuntime().exec(file);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Sikuli: Download Sikuli from https://launchpad.net/sikuli/+downloadOnce you install Sikuli in system. Write a below script to handle the download window in IE.
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Key;
import org.sikuli.script.Screen;
public class DownloadFileIE_Sikuli {
public static void main(String[] args) throws FindFailed {
System.setProperty("webdriver.ie.driver",System.getProperty("user.dir")+"\\IEDriver.exe");
WebDriver driver = new InternetExplorerDriver();
Screen screen = new Screen();
driver.manage().window().maximize();
driver.get("http://www.seleniumhq.org/download/");
driver.findElement(By.xpath("//*[@id='mainContent']/p[9]/a[2]")).sendKeys(Keys.ENTER);
screen.rightClick("D:\\SaveAsIE1.png");
screen.keyDown(Key.DOWN);
screen.click("D:\\SaveAsIE2.png");
screen.click("D:\\FileName.png");
screen.type("a", Key.CTRL);
screen.type(Key.BACKSPACE);
screen.type("IEdriver");
screen.click("D:\\SaveFile.png");
System.out.println("File downloaded");
}
}
Below are the images used in script:



















