11/23/17

How To Upload File Using AutoIT And SendKeys In Selenium WebDriver

Upload File using AutoIT & SendKeys:

In this post we are going to see on how to upload file using AutoIT and sendKeys method in Selenium WebDriver. There are two cases which are majorly used to upload file in Selenium WebDriver such as using SendKeys Method and using AutoITScript.

1. Upload file using SendKeys method in Selenium WebDriver:

Its very straightforward. Using sendkeys method, we could easily achieve this. Locate the text box and set the file path using sendkeys and click on submit button.
import java.io.IOException;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Upload {
    public static void main(String[] args) throws IOException {   
        //Instantiation of driver object. To launch Firefox browser
        WebDriver driver = new FirefoxDriver();
        //To open URL "http://softwaretestingmaterial.com"
        driver.get("http://softwaretestingplace.blogspot.com/2015/10/sample-web-page-to-test.html");
        //Locating 'browse' button
        WebElement browse =driver.findElement(By.id("uploadfile"));
        //pass the path of the file to be uploaded using Sendkeys method
        browse.sendKeys("D:\\SoftwareTestingMaterial\\UploadFile.txt");
        //'close' method is used to close the browser window
        driver.close();
    }
}

2. Upload file AutoIt Script in Selenium WebDriver:

If there is no text box to set the file path and only able to click on Browse button to upload the file in the windows popup box then we do upload file using AutoIt tool.
AutoIt Introduction:
AutoIt Tool is an open source tool. It is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying “runtimes” required!
Now the question is how we do upload file using AutoIT Tool in Selenium WebDriver.
Follow the below steps:
  1. Download Autoit tool from here and install it
  2. Open Programs – Autoit tool – SciTE Script Editor and add the below mentioned AutoIt script in Autoit editor and save it as ‘UploadFile.au3’ in your system
  3. Convert it as ‘UploadFile.exe’
  4. In Eclipse, add the below mentioned Selenium Script and run
Step 1: Download AutoIt tool and install
Step 2: Open SciTE Script editor and add the below mentioned AutoIt script and save it as ‘UploadFile.au3’ in your system.
AutoIt Script:
WinWaitActive("File Upload")
Send("D:\SoftwareTestingMaterial\UploadFile.txt")
Send("{ENTER}")

AutoIt Script Explanation:
Line 1 : WinWaitActive(“File Upload”)
Above line of code changes the focus of cursor on the Window popup box to upload file.
File Upload‘ is the name of the window popup when using Mozilla Firefox. If you want to use other browsers such as Chrome you need to pass the value as ‘Open‘ (‘Open’ is the name of the window popup) and for IE you need to pass the value as ‘File To Upload’ (‘File To Upload’ is the name of the window popup)
Line 2 : Send(“Path of the document”)
Once the window popup is active, it sets the path of the document which needs to be uploaded
Send(“D:\SoftwareTestingMaterial\UploadFile.txt”)
Line 3 : Send(“{ENTER}”)
After that it clicks on Open button which will upload the document
Step 3: Once the file is saved, we need to convert the ‘UploadFile.au3’ to ‘UploadFile.exe’. To do this we need to compile the ‘UploadFile.au3’
UploadFile Compile Autoit
Right click on the file ‘UploadFile.au3’ and click on ‘Compile Script’ to generate an executable file ‘UploadFile.exe’
Step 4: In Eclipse, add the below mentioned Selenium Script and run
Given clear explanation in the comments section with in the program itself. Please go through it to understand the flow.
 import java.io.IOException;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Upload {
    public static void main(String[] args) throws IOException {  
        //Instantiation of driver object. To launch Firefox browser
        WebDriver driver = new FirefoxDriver();
        //To open URL "http://softwaretestingmaterial.com"
        driver.get("http://softwaretestingplace.blogspot.com/2015/10/sample-web-page-to-test.html");
        //Locating 'browse' button
        WebElement browse =driver.findElement(By.id("uploadfile"));
        //To click on the 'browse' button
        browse.click();
        //To call the AutoIt script
        Runtime.getRuntime().exec("D:\\SoftwareTestingMaterial\\AutoIt\\Uploadfile.exe");
        //'close' method is used to close the browser window
        driver.close();
    }
}
In the above Selenium Script, we did call the AutoIt Script after clicking on the browser button which transfers windows popup box and upload the required file.
Syntax:
Runtime.getRuntime().exec("File Path of AutoIt.exe");
This way we could upload a file using AutoIT

0 comments:

Post a Comment