• Selenium Video Tutorials

Selenium Webdriver - Key Up/Down



Selenium Webdriver can be used to perform Key Up and Key Down operations using the Actions class. The methods keyUp() and keyDown() are used to perform Key Up and Key Down operations.

The copy and paste operations can be performed by using the Keys class in Selenium. The keys used to copy and paste can be done using the Ctrl + C and Ctrl + V respectively. These keys to be pressed are sent as parameters to the sendKeys() method.

Let us now discuss the identification of elements where the copy and paste operations are to be performed on a web page as shown in the below image. First, we would need to right click on the web page, and then click on the Inspect button in the Chrome browser. Then, the corresponding HTML code for the whole page would be visible. For investigating both the source and destination elements on that web page, we would need to click on the left upward arrow, available to the top of the visible HTML code as highlighted below.

Selenium Key Up Down 1

Let us take an example on the below page, where we would first enter the text - Selenium beside the Full Name in the first input box(highlighted) then copy and paste the same text in another input box(highlighted) beside the Email.

Selenium Key Up Down 2

Syntax

Syntax if we are using a MAC machine −

WebDriver driver = new ChromeDriver();

// Identify the first input box with xpath locator
WebElement e = driver.findElement(By.xpath("<value of xpath>"));

// enter some text
e.sendKeys("Selenium");

// Identify the second input box with xpath locator
WebElement s = driver.findElement(By.xpath("<value of xpath>"));

// Actions class methods to select text
Actions a = new Actions(driver);
a.keyDown(Keys.COMMAND);
a.sendKeys("a");
a.keyUp(Keys.COMMAND);
a.build().perform();

// Actions class methods to copy text
a.keyDown(Keys.COMMAND);
a.sendKeys("c");
a.keyUp(Keys.COMMAND);
a.build().perform();

// Action class methods to tab and reach to  the next input box
a.sendKeys(Keys.TAB);
a.build().perform();

// Actions class methods to paste text
a.keyDown(Keys.COMMAND);
a.sendKeys("v");
a.keyUp(Keys.COMMAND);
a.build().perform();

Syntax if we are using a Windows machine −

WebDriver driver = new ChromeDriver();

// Identify the first input box with xpath locator
WebElement e = driver.findElement(By.xpath("<value of xpath>"));

// enter some text
e.sendKeys("Selenium");

// Identify the second input box with xpath locator
WebElement s = driver.findElement(By.xpath("<value of xpath>"));

// Actions class methods to select text
Actions a = new Actions(driver);
a.keyDown(Keys.CONTROL);
a.sendKeys("a");
a.keyUp(Keys.CONTROL);
a.build().perform();

// Actions class methods to copy text
a.keyDown(Keys.CONTROL);
a.sendKeys("c");
a.keyUp(Keys.CONTROL);
a.build().perform();

// Action class methods to tab and reach to next input box
a.sendKeys(Keys.TAB);
a.build().perform();

// Actions class methods to paste text
a.keyDown(Keys.CONTROL);
a.sendKeys("v");
a.keyUp(Keys.CONTROL);
a.build().perform();

Example

Code Implementation on CopyAndPasteAction.java class file.

package org.example;

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

public class CopyAndPasteAction {
   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 an element
      driver.get("https://www.tutorialspoint.com/selenium/practice/text-box.php");

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

      // enter some text
      e.sendKeys("Selenium");

      // Actions class methods to select text
      Actions a = new Actions(driver);
      a.keyDown(Keys.COMMAND);
      a.sendKeys("a");
      a.keyUp(Keys.COMMAND);
      a.build().perform();

      // Actions class methods to copy text
      a.keyDown(Keys.COMMAND);
      a.sendKeys("c");
      a.keyUp(Keys.COMMAND);
      a.build().perform();

      // Action class methods to tab and reach to next input box
      a.sendKeys(Keys.TAB);
      a.build().perform();
      
      // Actions class methods to paste text
      a.keyDown(Keys.COMMAND);
      a.sendKeys("v");
      a.keyUp(Keys.COMMAND);
      a.build().perform();

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

      // Getting text in the second input box
      String text = s.getAttribute("value");
      System.out.println("Value copied and pasted: " + text);

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

Output

Value copied and pasted: Selenium

Process finished with exit code 0

In the above example, we had first entered the text Selenium in the first input box and then copied and pasted the same text in the second input box. Finally, we had obtained the entered text in the second input box as a message in the console - Value copied and pasted: Selenium.

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

Let us take another example, where we would enter text SELENIUM in an input box in capital letters using the Key Up Key Down features of Actions class. Please note that, while sending the value to the sendKeys() method, we would pass selenium along with pressing SHIFT keys. Hence, we would get the output entered in the input box as SELENIUM.

Syntax

Syntax to enter text in upper case −

WebDriver driver = new ChromeDriver();

// Identify the input box with xpath locator
WebElement e = driver.findElement(By.xpath("<value of xpath>"));

// Actions class
Actions a = new Actions(driver);

// moving to an input box and clicking on it
a.moveToElement(e).click();

// entering text in upper case using KeyUp/KepDown
a.keyDown(Keys.SHIFT);
a.sendKeys("selenium").keyUp(Keys.SHIFT).build().perform();

Example

Code Implementation on KeysAction.java class file.

package org.example;

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

public class KeyAction {
   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 an element
      driver.get("https://www.tutorialspoint.com/selenium/practice/text-box.php");

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

      // Actions class
      Actions a = new Actions(driver);

      // moving to an input box and clicking on it
      a.moveToElement(e).click();

      // key UP and DOWN action for SHIFT
      a.keyDown(Keys.SHIFT);
      a.sendKeys("Selenium").keyUp(Keys.SHIFT).build().perform();

      // get value entered
      System.out.println("Text entered: " + e.getAttribute("value"));

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

Output

Text entered: SELENIUM

Process finished with exit code 0

In the above example, we had entered the text selenium along with pressing SHIFT key in the input box and also obtained the entered text in upper case with the message in the console - Text entered: SELENIUM.

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

In this article, we had discussed various Key Up and Down operations performed using Selenium Webdriver.

Advertisements