Monday 22 October 2018

Keyboard and mouse event using selenium webdriver

Keyboard & Mouse Events

Handling special keyboard and mouse events are done using the Advanced User Interactions API. It contains the Actions and the Action classes that are needed when executing these events. The following are the most commonly used keyboard and mouse events provided by the Actions class.
MethodDescription
clickAndHold()Clicks (without releasing) at the current mouse location.
contextClick()Performs a context-click at the current mouse location.
doubleClick()Performs a double-click at the current mouse location.
dragAndDrop(source, target)Performs click-and-hold at the location of the source element, moves to the location of the target element, then releases the mouse.

Parameters:

source- element to emulate button down at.

target- element to move to and release the mouse at.
dragAndDropBy(source, x-offset, y-offset)Performs click-and-hold at the location of the source element, moves by a given offset, then releases the mouse.

Parameters:

source- element to emulate button down at.

xOffset- horizontal move offset.

yOffset- vertical move offset.
keyDown(modifier_key)Performs a modifier key press. Does not release the modifier key - subsequent interactions may assume it's kept pressed.

Parameters:

modifier_key - any of the modifier keys (Keys.ALT, Keys.SHIFT, or Keys.CONTROL)
keyUp(modifier _key)Performs a key release.

Parameters:

modifier_key - any of the modifier keys (Keys.ALT, Keys.SHIFT, or Keys.CONTROL)
moveByOffset(x-offset, y-offset)Moves the mouse from its current position (or 0,0) by the given offset.

Parameters:

x-offset- horizontal offset. A negative value means moving the mouse left.

y-offset- vertical offset. A negative value means moving the mouse down.
moveToElement(toElement)Moves the mouse to the middle of the element. 

Parameters:

toElement- element to move to.
release()Releases the depressed left mouse button at the current mouse location
sendKeys(onElement, charsequence)Sends a series of keystrokes onto the element. 

Parameters:

onElement - element that will receive the keystrokes, usually a text field

charsequence - any string value representing the sequence of keystrokes to be sent
--------------------------------------------------------------------------------------------------------------------------


//We are search a product on amazon using keyboard and mouse event
//we try to search "mobile phone " in amazon

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.Action;

import org.openqa.selenium.interactions.Actions;
public class KeyandMouse {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver","D:\\vishal\\selenium\\chromedriver_win32\\dasdf\\chromedriver.exe");
//path of exe file of chromedriver
WebDriver driver = new ChromeDriver();
//create object of webdriver as a driver name
String url="https://www.amazon.in/";
driver.get(url);
//you also write direct url in driver.get("https://www.amazon.in/");

//we declare a webelement of search box of amazon site

WebElement searchbox= driver.findElement(By.xpath(".//*[@id='twotabsearchtextbox']"));


//we want to use mouse and keyboard event so we need Actions library
Actions action=new Actions(driver);
//we create object of actions

Action search=action.moveToElement(searchbox)//couser is move to searchbox
.keyDown(searchbox,Keys.SHIFT)//after move is perform shift key press
.sendKeys("m") //m is write but shift key is press so m is written in capital word
.keyUp(searchbox, Keys.SHIFT) //shift key is release
.sendKeys("obile ")             //after that search box is take obile
.keyDown(searchbox,Keys.SHIFT)
.sendKeys("p")
.keyUp(searchbox, Keys.SHIFT)
.sendKeys("hone")
.build(); //build is use when we want to perform more then 2 actions

search.perform();//search action is perform
Thread.sleep(1000);
driver.close();
}

}

No comments:

Post a Comment

Jmeter

Database Testing: (1) Add mysql JDBC to Jmeter lib folder and restart Jmeter (2) Right click on test name -> add  Thread group (3)...