Testing With Selenium WebDriver (68 Blogs) Become a Certified Professional
AWS Global Infrastructure

Software Testing

Topics Covered
  • Testing With Selenium WebDriver (58 Blogs)
SEE MORE

MI-new-launch

myMock Interview Service for Real Tech Jobs

myMock-widget-banner-bg

A Step by Step Guide to Uploading a file using Selenium

Published on Sep 04,2019 284 Views

MI-new-launch

myMock Interview Service for Real Tech Jobs

myMock-mobile-banner-bg

myMock Interview Service for Real Tech Jobs

  • Mock interview in latest tech domains i.e JAVA, AI, DEVOPS,etc
  • Get interviewed by leading tech experts
  • Real time assessment report and video recording

We often come across scenarios while testing where we have to upload a file. For different UI there are different ways to upload a file. Following pointers will be covered in this Uploading a FIle using Selenium article:

Moving  on with this article on Uploading a file using Selenium

 

Uploading a file using Selenium

Uploading a file while automating test scripts is no more a challenge. In this tutorial I will be discussing about the most easiest way of uploading a file using Selenium. In this, we will be using “Sendkeys” to upload the file.

Before diving into further details let’s take an example and learn how we can upload a file while automating our scripts using Selenium.

Image -Uploading a file using Selenium- Edureka

In the above image you can see three things:

  • Choose File Button: On clicking this button we can choose the file we wish to upload from our machine.

  • Input type: The Input type of the Choose File button in the above image is of file type.

  • Upload Button: On clicking, this button upload function is performed.

Note: I would be using an example of edureka where we can upload our image by editing personal details. For this, I need to first login using edureka account. To login, I will be using my username and password, I request you to use yours to practice for the same.

Let’s move forward step by step.

 

  • Set the path of the driver of the browser on which the test script will run.

Example
System.setProperty(“webdriver.chrome.driver”,”/Users/ankita/Downloads/chromedriver”);

 

  • Create an instance of that browser

Example:
WebDriver driver = new ChromeDriver(options);

 

  • Navigate to the Edureka main page and then Login using your username and password

Example:


driver.get("https://www.edureka.co/");
driver.findElement(By.linkText("Log In")).click();
driver.findElement(By.id("si_popup_email")).sendKeys("username");
driver.findElement(By.id("si_popup_passwd")).sendKeys("password");
driver.findElement(By.xpath("//*[@id=\"new_sign_up_mode\"]/div/div/div[2]/div[3]/form/button")).click();

 

  • After you Login into Edureka account using your username and password. Navigate to page where you can upload your image by editing your personal details.
    Here, I am navigating right away to the page from where by pressing image icon I will be navigated to the page to upload image.

Image- Uploading a file using Selenium- Edureka

On clicking on the highlighted icon above, you will be navigated to the image upload page.




driver.get("https://learning.edureka.co/onboarding/personaldetails");
driver.findElement(By.xpath("//*[@id=\"collapseOne\"]/div/div/div[2]/a/i")).click();

 

  • As soon as you click on the above mentioned icon, you will be navigated to the page where you can upload the image(as seen below).

Image- Choose File

 

  • Now, without clicking the Choose File button we will use Sendkeys to send the absolute path of the image file which we would like to upload.

Example:




WebElement chooseFile = driver.findElement(By.id("custom-input"));
chooseFile.sendKeys("/Users/ankita/Downloads/edureka.png");

NOTE: If you click on the choose file button, then you will be taken to your machine window to select a file and then you will not be able to select a file using selenium. Hence, you will have to take the help of third tool i.e. either AutoIT or Sikuli.
We will be discussing about them in detail in our other tutorials.

 

  • After you pass the absolute path of the file with sendkeys, the upload button will be enabled and the image selected will be seen as below:

Image- Edureka

Now, click the upload button:

Example:
driver.findElement(By.cssSelector(“div[class=’submitbtnsec’] > button[type=’submit’]”)).click();

With this uploading of file is done and now the new uploaded image will be seen in your personal details.

Moving  on with this article on Uploading a file using Selenium

 

Below is the script to perform the above-mentioned steps in Selenium using Java


import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class EdurekaUploadTest {

public static void main(String[] args) throws InterruptedException {

System.setProperty("webdriver.chrome.driver","/Users/ankita/Downloads/chromedriver");
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.edureka.co/");

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.linkText("Log In"))));
driver.findElement(By.linkText("Log In")).click();
driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.id("si_popup_email"))));
driver.findElement(By.id("si_popup_email")).sendKeys("username");
driver.findElement(By.id("si_popup_passwd")).sendKeys("password");

driver.findElement(By.xpath("//*[@id=\"new_sign_up_mode\"]/div/div/div[2]/div[3]/form/button")).click();

Thread.sleep(2000);
driver.get("https://learning.edureka.co/onboarding/personaldetails");
Thread.sleep(1000);

WebElement imageEdit = driver.findElement(By.xpath("//*[@id=\"collapseOne\"]/div/div/div[2]/a/i"));

imageEdit.click();
Thread.sleep(1000);
WebElement chooseFile = driver.findElement(By.id("custom-input"));
chooseFile.sendKeys("/Users/ankita/Downloads/edureka.png");
Thread.sleep(1000);
driver.findElement(By.cssSelector("div[class='submitbtnsec'] > button[type='submit']")).click();

}

}

With this, we come to an end of this Uploading a File Using Selenium article. In this tutorial, we have learned about how to upload a file using “Sendkeys” in selenium. The major drawback with this approach is that we can use sendkeys only when the type of the input is of file type or there is an editable text box along with the browse button. In such a case, we can give the absolute path of the file instead of clicking the button provided to choose a file from the machine.

If you wish to learn Selenium and build a career in the testing domain, then check out our interactive, live-online Selenium 3.0 Certification Training here, that comes with 24*7 support to guide you throughout your learning period.

Comments
0 Comments

Browse Categories

webinar REGISTER FOR FREE WEBINAR
REGISTER NOW
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP

Subscribe to our Newsletter, and get personalized recommendations.