Showing posts with label Actions. Show all posts
Showing posts with label Actions. Show all posts

July 20, 2015

Simulate pressing of Multiple Keys (using chord)

July 20, 2015 8
One of the nice feature in selenium webdriver is it allows us to simulate pressing of multiple keys using a method called "chord"

Here is the explanation of chord method:

Simulate pressing many keys at once in a "chord". Takes a sequence of Keys.XXXX or strings; appends each of the values to a string, and adds the chord termination key (Keys.NULL) and returns the resultant string. 

Source:  http://seleniumhq.github.io/selenium/docs/api/java/index.html

In the below example i am going to show how to perform Copy and Paste using Selenium webdriver using Actions + Keys + chord.



Below is scenario:
1. Open https://accounts.google.com/signup
2. Type something in FirstName
3. Copy the content in FirstName field (CTRL+c)
4. Paste same thing in LastName field (CTRL+v


package sample;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class Keys_Chord {
 
 public WebDriver driver;

 @Test
 public void testKeys_Chord() throws Exception {
  driver.get("https://accounts.google.com/signup");
  //Element definitions for FirstName and LastName
  WebElement txtFName=driver.findElement(By.name("FirstName"));
  WebElement txtLName=driver.findElement(By.name("LastName"));
  //Type "webdriver" in First Name
  txtFName.sendKeys("webdriver");
  //Create an object for Actions Class
  Actions a = new Actions(driver);
  //select the value which is typed in FirstName field
  a.sendKeys(txtFName, Keys.chord(Keys.CONTROL,"a")).perform();
  //Performing copy action using CTRl+C
  a.sendKeys(Keys.chord(Keys.CONTROL,"c")).perform();
  //Performing paste action using CTRL+V in LastName field
  a.sendKeys(txtLName, Keys.chord(Keys.CONTROL,"v")).perform();
  Thread.sleep(2000);
 }

 @BeforeClass
 public void beforeClass() 
 {
  driver = new FirefoxDriver();
  driver.manage().window().maximize();
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 }

 @AfterClass
 public void afterClass() throws Exception 
 {
  driver.quit();
 }
}

July 17, 2015

Keys Simulation using Selenium Webdriver

July 17, 2015 5
Keys Simulation using Selenium Webdriver
Here is the post how to simulate keys actions using selenium webdriver..Keys are used simulate user keyboard actions. For example if you want Press Enter, PageUp, Page Down, ALT or Tabs keys using selenium. It can be achieved by using Keys class..

For example after entering some text in search box you need not to click submit/search button. you can simulate ENTER key actions by using Keys class.

To achieve this we have to use Advanced User Interaction API.


More details about Advanced User Interactions can be found here --  Actions

In order to use AUI we need to create an object for Actions class.

In below scenario i will show how to Use Actions class and simulate Enter Key, Page Up and Page Down keys.


package sample;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class Keys_Test {
 
 public WebDriver driver;

 @Test
 public void testKeys_Test() throws Exception {
  driver.get("http://www.amazon.in/");
  WebElement txtSearch=driver.findElement(By.id("twotabsearchtextbox"));
  txtSearch.sendKeys("mobiles");
  //Create an object for Actions class
  Actions a = new Actions(driver);
  //Simulate Enter key
  a.sendKeys(Keys.ENTER).perform();
  //Simulate Page Down
  a.sendKeys(Keys.PAGE_DOWN).perform();
  //Simulate page Up
  a.sendKeys(Keys.PAGE_UP).perform();
  Thread.sleep(2000);
 }

 @BeforeClass
 public void beforeClass() 
 {
  driver = new FirefoxDriver();
  driver.manage().window().maximize();
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
 }

 @AfterClass
 public void afterClass() throws Exception 
 {
  driver.quit();
 }
}