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.
Method | Description |
---|---|
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