Bird
Raised Fist0
Selenium Javatesting~5 mins

Context click (right click) in Selenium Java

Choose your learning style10 modes available
Introduction

Context click lets you simulate a right-click on a webpage element. This helps test menus or actions that appear on right-click.

Testing a custom context menu on a webpage.
Checking if right-click options work correctly.
Verifying that right-click triggers expected behavior.
Automating tasks that require right-click actions.
Testing browser default context menu is disabled.
Syntax
Selenium Java
Actions actions = new Actions(driver);
actions.contextClick(element).perform();

You need to import org.openqa.selenium.interactions.Actions.

Always call perform() to execute the action.

Examples
Right-click on an element with id 'box'.
Selenium Java
WebElement box = driver.findElement(By.id("box"));
Actions actions = new Actions(driver);
actions.contextClick(box).perform();
Right-click at the current mouse location.
Selenium Java
Actions actions = new Actions(driver);
actions.contextClick().perform();
Sample Program

This test opens a demo page, right-clicks a button, and checks if the context menu appears.

Selenium Java
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class ContextClickTest {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();
        try {
            driver.get("https://swisnl.github.io/jQuery-contextMenu/demo.html");
            WebElement button = driver.findElement(By.cssSelector("span.context-menu-one.btn.btn-neutral"));
            Actions actions = new Actions(driver);
            actions.contextClick(button).perform();
            WebElement menu = driver.findElement(By.cssSelector("ul.context-menu-list.context-menu-root"));
            if(menu.isDisplayed()) {
                System.out.println("Context menu appeared - Test Passed");
            } else {
                System.out.println("Context menu did not appear - Test Failed");
            }
        } finally {
            driver.quit();
        }
    }
}
OutputSuccess
Important Notes

Make sure the element is visible and enabled before right-clicking.

Use explicit waits if the context menu takes time to appear.

Right-clicking outside elements may trigger browser default menus.

Summary

Context click simulates a right-click on a web element.

Use Actions.contextClick(element).perform() to do this.

It helps test custom right-click menus and related behaviors.

Practice

(1/5)
1. What does the contextClick() method in Selenium WebDriver do?
easy
A. Simulates typing text into a web element
B. Simulates a right-click on a web element
C. Simulates a drag and drop action
D. Simulates a double-click on a web element

Solution

  1. Step 1: Understand the purpose of contextClick()

    The contextClick() method is designed to simulate a right-click action on a web element, which is different from a normal click.
  2. Step 2: Compare with other mouse actions

    Double-click, drag and drop, and typing are different actions and have their own methods like doubleClick(), dragAndDrop(), and sendKeys().
  3. Final Answer:

    Simulates a right-click on a web element -> Option B
  4. Quick Check:

    contextClick() = right-click [OK]
Hint: Right-click action in Selenium uses contextClick() [OK]
Common Mistakes:
  • Confusing contextClick() with doubleClick()
  • Using click() instead of contextClick() for right-click
  • Trying to send keys for right-click action
2. Which of the following is the correct syntax to perform a right-click on a web element using Selenium Java?
easy
A. Actions.contextClick(element).perform();
B. driver.contextClick(element).perform();
C. new Actions(driver).contextClick(element).perform();
D. driver.actions().contextClick(element).perform();

Solution

  1. Step 1: Identify the correct Actions class usage

    In Selenium Java, Actions is instantiated with the WebDriver instance, e.g., new Actions(driver).
  2. Step 2: Use contextClick() on the Actions object and call perform()

    The method chain is new Actions(driver).contextClick(element).perform(); to execute the right-click.
  3. Final Answer:

    new Actions(driver).contextClick(element).perform(); -> Option C
  4. Quick Check:

    Actions object + contextClick + perform() = correct syntax [OK]
Hint: Always create Actions object with driver before contextClick() [OK]
Common Mistakes:
  • Calling contextClick() directly on driver
  • Using static call on Actions without new keyword
  • Missing perform() at the end
3. What will happen when the following Selenium Java code is executed?
WebElement element = driver.findElement(By.id("menu"));
new Actions(driver).contextClick(element).perform();
medium
A. A left-click is performed on the element with id 'menu'
B. Nothing happens because perform() is missing
C. An exception is thrown because contextClick() requires coordinates
D. A right-click is performed on the element with id 'menu'

Solution

  1. Step 1: Locate the element by id 'menu'

    The code finds the web element with id="menu" correctly using findElement(By.id("menu")).
  2. Step 2: Perform contextClick() on the found element

    The contextClick(element).perform() chain performs a right-click on that element.
  3. Final Answer:

    A right-click is performed on the element with id 'menu' -> Option D
  4. Quick Check:

    contextClick(element).perform() = right-click on element [OK]
Hint: contextClick(element).perform() triggers right-click on that element [OK]
Common Mistakes:
  • Thinking contextClick needs coordinates always
  • Confusing left-click with right-click
  • Forgetting to call perform()
4. Identify the error in the following Selenium Java code snippet that tries to right-click on a button:
WebElement button = driver.findElement(By.name("submit"));
Actions action = new Actions(driver);
action.contextClick().perform();
medium
A. contextClick() is called without specifying the element
B. Actions object is not created properly
C. perform() is missing after contextClick()
D. findElement locator is incorrect

Solution

  1. Step 1: Check contextClick() usage

    The method contextClick() requires either no argument (to right-click at current mouse location) or a WebElement argument to specify where to right-click. Here, no argument is passed but no mouse position is set.
  2. Step 2: Confirm if element is specified

    The code finds the button element but does not pass it to contextClick(), so it will not right-click on the button.
  3. Final Answer:

    contextClick() is called without specifying the element -> Option A
  4. Quick Check:

    contextClick() needs element or mouse position [OK]
Hint: Always pass element to contextClick() to right-click on it [OK]
Common Mistakes:
  • Calling contextClick() without element or mouse position
  • Forgetting perform() after contextClick()
  • Assuming findElement locator is wrong without checking
5. You want to test a custom context menu that appears on right-clicking a list item. Which Selenium Java code snippet correctly performs a right-click on the first list item and then clicks the 'Delete' option from the context menu?
WebElement listItem = driver.findElement(By.cssSelector("ul#items li:first-child"));
WebElement deleteOption = driver.findElement(By.id("delete"));
// What next?
hard
A. new Actions(driver).contextClick(listItem).perform(); deleteOption.click();
B. new Actions(driver).click(listItem).contextClick(deleteOption).perform();
C. new Actions(driver).contextClick(listItem).click(deleteOption).perform();
D. new Actions(driver).contextClick(deleteOption).click(listItem).perform();

Solution

  1. Step 1: Right-click on the first list item

    Use contextClick(listItem).perform() to open the custom context menu on the list item.
  2. Step 2: Click the 'Delete' option separately

    After the context menu appears, click the 'Delete' option using deleteOption.click(); as it is a normal click on a visible element.
  3. Final Answer:

    new Actions(driver).contextClick(listItem).perform(); deleteOption.click(); -> Option A
  4. Quick Check:

    Right-click then normal click separately for context menu actions [OK]
Hint: Right-click then click menu option separately for context menus [OK]
Common Mistakes:
  • Chaining click on menu option inside Actions after contextClick
  • Clicking wrong element first
  • Not calling perform() after contextClick
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard