I am testing automation with Selenium and stuck here When I click a button and a new popup window will open (just as OpenFileDialog) to select file from computer. I want to write a testcase for this step.
2 Answers
There are two ways to handle this as,
Directly pass the file as,
driver.findElement(By.id("elementId")).sendKeys("C:\path\to\your\file");
By using the Robot framework click here.
Comments
Use this Method for file handling:
We need:
jacob.jar Download
It will contain one jar file and 2 .dll files
AutoItX4Java.jar Download
public static void uploadFile(String path, String browser){
if(browser.equalsIgnoreCase("chrome")){
if(x.winWaitActive("Open", "", 10)){
if(x.winExists("Open")){
x.sleep(500);
x.send(path);
x.controlClick("Open", "", "Button2");
}
}
}
if(browser.equalsIgnoreCase("firefox")){
if(x.winWaitActive("File Upload", "", 10)){
if(x.winExists("File Upload")){
x.sleep(500);
x.send(path);
x.controlClick("File Upload", "", "Button2");
}
}
}
if(browser.equalsIgnoreCase("InternetExplorer")){
if(x.winWaitActive("Choose File to Upload", "", 10)){
if(x.winExists("Choose File to Upload")){
x.sleep(500);
x.send(path);
x.controlClick("Choose File to Upload", "", "Button2");
}
}
}
}
public void test(){
//Click on the Select button of the file upload
uploadFile("Path", "chrome");
}