The Actions class in Selenium is used to perform complex user interactions on a web page. It allows you to perform multiple actions together, such as clicking and dragging, or clicking and holding.
Here are some examples of how to use the Actions class in Selenium:
1. To click and hold an element:
WebElement element = driver.findElement(By.id("elementId"));
Actions actions = new Actions(driver);
actions.clickAndHold(element).build().perform();
In this example, the findElement(By.id("elementId")) method is used to locate the element on the page. Then, a new Actions object is created using the WebDriver as the parameter. The clickAndHold(element) method is then used to click and hold the element. The build() method is used to create an action, and the perform() method is used to execute the action.
2. To click and drag an element:
WebElement element = driver.findElement(By.id("elementId"));
WebElement target = driver.findElement(By.id("targetId"));
Actions actions = new Actions(driver);
actions.clickAndHold(element).moveToElement(target).release().build().perform();
In this example, the findElement(By.id("elementId")) and findElement(By.id("targetId")) methods are used to locate the element and the target element on the page. Then, a new Actions object is created using the WebDriver as the parameter. The clickAndHold(element) method is used to click and hold the element, and the moveToElement(target) method is used to move the element to the target. The release() method is used to release the element. The build() method is used to create an action, and the perform() method is used to execute the action.
3. To perform a double-click:
WebElement element = driver.findElement(By.id("elementId"));
Actions actions = new Actions(driver);
actions.doubleClick(element).build().perform();
In this example, the findElement(By.id("elementId")) method is used to locate the element on the page. Then, a new Actions object is created using the WebDriver as the parameter. The doubleClick(element) method is then used to double-click the element. The build() method is used to create an action, and the perform() method is used to execute the action.
4. To move the mouse pointer to a specific element:
WebElement element = driver.findElement(By.id("elementId"));
Actions actions = new Actions(driver);
actions.moveToElement(element).build().perform();
In this example, the findElement(By.id("elementId")) method is used to locate the element on the page. Then, a new Actions object is created using the WebDriver as the parameter. The moveToElement(element) method is then used to move the mouse pointer to the element. The build() method is used to create an action, and the perform() method is used to execute the action.
It's important to note that the Actions class can also be used to perform keyboard actions such as press, release, and key-down. Also, it's important to use try-catch block to handle the NoSuchElementException that could be thrown if an element is not present or if the element is not visible to the user.
5. To press a keyboard key:
Actions actions = new Actions(driver);
Â
actions.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).build().perform();
In this example, a new Actions object is created using the WebDriver as the parameter. The keyDown(Keys.CONTROL) method is used to press the control key, the sendKeys("a") method is used to send the 'a' key. The keyUp(Keys.CONTROL) method is then used to release the control key. The build() method is used to create an action, and the perform() method is used to execute the action.
6. To press and release a keyboard key:
Actions actions = new Actions(driver);
Â
actions.sendKeys(Keys.ENTER).build().perform();
In this example, a new Actions object is created using the WebDriver as the parameter. The sendKeys(Keys.ENTER) method is used to press and release the Enter key. The build() method is used to create an action, and the perform() method is used to execute the action.
It is worth noting that the Actions class is part of the Selenium WebDriver API, so it can only be used to interact with web pages. If you need to perform complex actions on the operating system, you will need to use an external library like AutoIt.
7. To perform multiple actions at once:
WebElement element1 = driver.findElement(By.id("elementId1"));
Â
WebElement element2 = driver.findElement(By.id("elementId2"));
Â
Actions actions = new Actions(driver);
Â
actions.moveToElement(element1).click().keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).moveToElement(element2).contextClick().build().perform();
In this example, a new Actions object is created using the WebDriver as the parameter. The moveToElement(element1) method is used to move the mouse pointer to the element1, the click() method is used to click on the element1. Then the keyDown(Keys.CONTROL) method is used to press the control key, the sendKeys("a") method is used to send the 'a' key. The keyUp(Keys.CONTROL) method is then used to release the control key. Then the moveToElement(element2) method is used to move the mouse pointer to the element2, the contextClick() method is used to right-click on the element2. The build() method is used to create an action, and the perform() method is used to execute the action.
The Actions class in Selenium is a powerful tool that allows you to perform complex user interactions on a web page. It can be used to simulate mouse and keyboard actions, and it allows you to perform multiple actions together. It is important to understand the methods available in the Actions class and how to use them correctly, in order to effectively automate user interactions in Selenium WebDriver.
Post a Comment