• Selenium Video Tutorials

Selenium WebDriver - User Interactions



Selenium WebDriver can be used for various user interactions like clicking a link or a button, entering or clearing text from an input box, and selecting or deselecting options in a dropdown.

Basic Selenium Webdriver Commands on User Interactions

There are multiple commands in Selenium Webdriver that help to perform an action on an element. They are listed below −

click()

This method is used to perform a click even at the middle of an element. In case, middle of an element is hidden, an exception would be thrown.

Right click on the web page, and click on the Inspect button in the Chrome browser. Then, the relevant HTML code for the page would be opened. For investigating a link say No Content in the below page, click on the left upward arrow at the top of the HTML code as highlighted below.

Selenium User Interactions 1

Once, we had clicked and pointed the arrow to the No Content hyperlink, its HTML code was visible. A link can be detected using the link text locator. Using this, the first link with the matching value of the link text is located.

Example

Let us take an example, where we would first click the No Content link, after which we would obtain the text Link has responded with status 204 and status text.

Selenium User Interactions 2

Code Implementation

package org.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import java.util.concurrent.TimeUnit;

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

      // Initiate the Webdriver
      WebDriver driver = new EdgeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // Opening the webpage where we will identify link
      driver.get("https://www.tutorialspoint.com/selenium/practice/links.php");

      // Identify link with link text
      driver.findElement(By.linkText("No Content")).click();

      // identify text
      WebElement l = driver.findElement(By.xpath("/html/body/main/div/div/div[2]/div[2]"));

      // Get text after clicking the link
      System.out.println("Text is: " + l.getText());
      
      // Closing browser
      driver.quit();
   }
}

Output

Text is: Link has responded with status 204 and status text No Content

Process finished with exit code 0

In the above example, the text obtained after clicking on the link No Content was Text is: Link has responded with status 204 and status text No Content.

Finally, the message Process finished with exit code 0 was received, signifying successful execution of the code.

sendKeys()

This method is used to enter some text in the edit box or any editable field. Every input box has the tagname known as the input. Also, an input box should have the type attribute having the value as text. If an element is not editable, and sendKeys() method is applied on it, an exception should be thrown.

clear()

This method is used to clear text from an edit box or any editable field. If an element is not editable, and a clear() method is applied on it, an exception should be thrown.

Selenium User Interactions 3

Example

Let us take an example of the above page, where we would first enter some text in the input box with the help of the sendKeys() method. The value to enter is passed as an argument to the method. Then, we would wipe out the text entered with the clear() method.

package org.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

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

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // Opening the webpage where we will identify edit box and enter
      driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");

      // Identify the input box with xpath locator
      WebElement e = driver.findElement(By.xpath("//*[@id='name']"));

      // enter text in input box
      e.sendKeys("Selenium");

      // Get the value entered
      String text = e.getAttribute("value");
      System.out.println("Entered text is: " + text);

      // clear the text entered
      e.clear();

      // Get no text after clearing text
      String text1 = e.getAttribute("value");
      System.out.println("Get text after clearing: " + text1);

      // Closing browser
      driver.quit();
   }
}

Output

Entered text is: Selenium
Get text after clearing: 

Process finished with exit code 0

In the above example, we had first entered the text Selenium in the input box, and retrieved the value entered in the console with the message- Entered text is: Selenium. Then cleared the value entered and there was no value in the input box. Hence, we received the message in the console: Get text after clearing.

Select Class

There are multiple methods on Select class that help us to interact with dropdown. Every dropdown is identified by the select tagname and its options are identified with the option tagname. There can be two types of dropdown on a web page - single select(allows selection one option) and multiple select(allows selection more than one option). A multiple select dropdown should also have an attribute multiple.

Selenium User Interactions 4

In the above image, the option Pick one title has the attribute selected, meaning this is selected by default. There are multiple methods in the Select class which allows handling of dropdowns in Selenium Webdriver.

In the below page, where we would access the multi-select dropdown beside the text Multi Select drop down, select the values Electronics & Computers and Sports & Outdoors, and perform some validations.

Selenium User Interactions 5

Example

package org.example;

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.support.ui.Select;
import java.util.List;
import java.util.concurrent.TimeUnit;

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

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // Opening the webpage where we will get dropdown
      driver.get("https://www.tutorialspoint.com/selenium/practice/select-menu.php");

      // identify multiple dropdown
      WebElement dropdown = driver.findElement
         (By.xpath("//*[@id='demo-multiple-select']"));
         
      // object of Select class
      Select select = new Select(dropdown);

      // gets options of dropdown in list
      List<WebElement> options = select.getOptions();
      for (WebElement opt : options){
         System.out.println("Options are: " + opt.getText());
      }

      // return true if multi-select dropdown
      Boolean b = select.isMultiple();
      System.out.println("Boolean value for multiple dropdown: "+ b);

      // select item by value
      select.selectByValue("3");

      // select item by index
      select.selectByIndex(7);

      // get all selected options of dropdown in list
      List<WebElement> selectedOptions = select.getAllSelectedOptions();
      for (WebElement opt : selectedOptions){
         System.out.println("Selected Options are: " + opt.getText());
      }

      // get first selected option in dropdown
      WebElement f = select.getFirstSelectedOption();
      System.out.println("First selected option is: "+ f.getText());

      // deselect option by index
      select.deselectByIndex(7);
      
      // deselect all selected items
      select.deselectAll();

      // get all selected options of dropdown after deselected
      List<WebElement> delectedOptions = select.getAllSelectedOptions();
      System.out.println("No. options selected: " + delectedOptions.size());

      // Closing browser
      driver.quit();
   }
}

Output

Options are: Books
Options are: Movies, Music & Games
Options are: Electronics & Computers
Options are: Home, Garden & Tools
Options are: Health & Beauty
Options are: Toys, Kids & Baby
Options are: Clothing & Jewelry
Options are: Sports & Outdoors
Boolean value for multiple dropdown: true
Selected Options are: Electronics & Computers
Selected Options are: Sports & Outdoors
First selected option is: Electronics & Computers
No. options selected: 0

Process finished with exit code 0

In the above example, we had obtained all the options of the dropdown with the message in the console - Options are: Books, Options are: Movies, Music & Games, Options are: Home, Garden & Tools, Options are: Health & Beauty, Options are: Toys, Kids & Baby, Options are: Clothing & Jewelry, Options are: Sports & Outdoors. We had also validated that the dropdown had multiple selection options with the message in the console - Boolean value for checking is: true.

We had retrieved the selected options in the dropdown with the message in the console - Selected Options are: Electronics & Computers, Selected Options are: Sports & Outdoors. We had also obtained the first selected option with the message in the console - First selected option is: Electronics & Computers. Finally, we deselected all the selected options in the dropdown, and hence obtained the message in the console - No. options selected: 0.

Scrolling Action

Selenium webdriver can be used to do scrolling actions on a web page with the help of the JavaScriptExecutor(an interface). Selenium Webdriver can execute the JavaScript commands using the JavaScriptExecutor.

Read More: Selenium Webdriver Scroll Operations.

Conclusion

This concludes our comprehensive take on the tutorial on Selenium WebDriver User Interactions. We’ve started with describing basic Selenium Webdriver commands on User Interactions, and examples to illustrate how to work with these commands in Selenium Webdriver. This equips you with in-depth knowledge of the Selenium WebDriver User Interactions. It is wise to keep practicing what you’ve learned and exploring others relevant to Selenium to deepen your understanding and expand your horizons.

Advertisements