Selenium | how to upload a csv file with Selenium script

In this post I will give an example of how to upload a csv file with Selenium script to a webpage. Below is the screenshot of webpage:
images-2

Code to automatically select a csv file and then click Submit button is given below. Go through the comments in the code.

package login;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import java.awt.event.KeyEvent;
//import com.thoughtworks.selenium.webdriven.commands.KeyEvent;

public class upload_csv_file_using_send_keys {

    public static void main(String[] args) throws InterruptedException, AWTException {
        String Url = "https://colored.lmscheckout.com/";
        WebDriver driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.get(Url);
        // before we can upload a file we need to login to the site
        driver.findElement(By.id("UserUsername")).sendKeys("colored@mailinator.com");
        driver.findElement(By.id("UserPassword")).sendKeys("Colored123!");
        driver.findElement(By.id("btnLoginHeader")).click();
        driver.findElement(By.xpath("//a[@href='/AdminUsers/newUserForm']")).click();
        //now go to target page where we need to upload the csv file
        driver.findElement(By.xpath("//a[@href='/AdminUsers/index']")).click();
        //set the path of the csv file where it is located on local machine
        driver.findElement(By.xpaStringSelection("C:\\Users\\Webners\\Downloads\\colored_Namisha_sample_users_1470639510.csv"); StringSelection ss = new Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); Robot robot = new Robot();
            //using keyboard keystrokes below we can select the file in the windows prompt and close the prompt
            robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER);
            //On clicking submit button file will get uploaded
            driver.findElement(By.xpath("//input[@class=('btn btn-success btn-block')]")).click();
        }
    }

Webner Solutions is a Software Development company focused on developing CRM apps (Salesforce, Zoho), LMS Apps (Moodle/Totara), Websites and Mobile apps. If you need Web development or any other software development assistance please contact us at webdevelopment@webners.com

Leave a Reply

Your email address will not be published. Required fields are marked *