What Is Action Class In Selenium?

January 23, 2023

By Ashwinder Kaur

Action class in Selenium is a collection of individual actions that user wants to perform e.g. a mouse click, drag and drop events, pressing a keyboard key.

Action class is a built-in feature for handling keyboard and mouse events. All the operations from the action class are performed using the advanced user interaction API in Selenium Webdriver.

Action class is defined and invoked using the following syntax:

  • Actions action = new Actions(driver);
  • action.moveToElement(element).click().perform();

Methods in Action class can be mainly categorized into Mouse events and Keyboard events.

Examples of Performing Keyboard Events

  • keyDown(modifier key) — Performs a modifier key press and subsequent interactions may assume it’s kept pressed.
  • sendKeys(keys to send) — Sends keys to the active web element, usually a text field.
  • keyUp(modifier key) — Performs a modifier key release.

Examples of Performing Mouse Events

  • click() — Performs click at the current mouse location.
  • doubleClick() — Performs double click at the current mouse location.
  • contextClick() — Performs right-click on the mouse.
  • clickAndHold() — Clicks (without releasing) in the middle of the given element.
  • dragAndDrop(source, target) — Click-and-hold at the location of the source element, and moves to the location of the target element.
  • dragAndDropBy(source, xOffset, yOffset) — Click-and-hold at the location of the source element, moves by a given offset.
  • moveByOffset(x-offset, y-offset) — Moves the mouse from its current position (or 0,0) by the given offset.
  • moveToElement(toElement) — Moves the mouse to the middle of the element.
  • release() — Releases the depressed left mouse button at the current mouse location.

Examples of Action Class in Selenium

Perform Click action on the Web Element

Test Scenario: Visit a page and click on a button

driver.get("Page URL");

Actions action = new Actions(driver);

element = driver.findElement(By.linkText("text on the button"));

action.moveToElement(element).click();

Perform Mouse Hover Action on the Web Element

Test Scenario: Perform mouse hover on an element

driver.get("Page URL");

Actions action = new Actions(driver);

WebElement element = driver.findElement(By. xPath("xpath of web element"));

action.moveToElement(element).build().perform();

Perform Double Click Action on the Web Element

Test Scenario: Perform double click action on a button

driver.get("Page URL");

Actions action = new Actions(driver);

WebElement element = driver.findElement(By. xPath("xpath of web element"));

action.doubleClick(element).perform();

Source: https://www.guru99.com/keyboard-mouse-events-files-webdriver.html

Ash Headshot

Ashwinder Kaur

Quality Assurance Lead

Ashwinder, aka "Ash" is a Quality Assurance Lead dedicated to ensuring high-quality products. She has a Bachelor's of Computer Science & Engineering ad more than 7 years of QA experience under her belt. Ash loves to spend time with her family, sightseeing (especially the Rocky Mountains), and enjoys solving math problems with her son.