Bird
Raised Fist0
Selenium Javatesting~15 mins

Double click in Selenium Java - Build an Automation Script

Choose your learning style10 modes available
Verify double click action on button triggers alert
Preconditions (2)
Step 1: Open the test web page URL
Step 2: Locate the button with id 'double-click-btn'
Step 3: Perform a double click on the button
Step 4: Switch to the alert that appears
Step 5: Capture the alert text
Step 6: Accept the alert
✅ Expected Result: An alert appears with text 'Button double clicked!' and is accepted successfully
Automation Requirements - Selenium WebDriver with Java
Assertions Needed:
Verify alert is present after double click
Verify alert text equals 'Button double clicked!'
Best Practices:
Use Actions class for double click
Use explicit waits to wait for alert presence
Use By.id locator for button
Handle alert properly to avoid test hang
Automated Solution
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;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.Alert;
import java.time.Duration;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class DoubleClickTest {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        try {
            driver.get("https://example.com/double-click-test");

            WebElement button = driver.findElement(By.id("double-click-btn"));

            Actions actions = new Actions(driver);
            actions.doubleClick(button).perform();

            wait.until(ExpectedConditions.alertIsPresent());
            Alert alert = driver.switchTo().alert();

            String alertText = alert.getText();
            assertEquals("Button double clicked!", alertText);

            alert.accept();
        } finally {
            driver.quit();
        }
    }
}

The code starts by setting up the ChromeDriver and opening the test page URL.

It locates the button using By.id("double-click-btn"), which is a reliable locator.

The Actions class is used to perform a double click on the button.

After the double click, it waits explicitly for the alert to appear using WebDriverWait and ExpectedConditions.alertIsPresent().

Once the alert is present, it switches to the alert, captures the text, and asserts that it matches the expected message.

Finally, it accepts the alert to close it and quits the browser to clean up.

Common Mistakes - 4 Pitfalls
Using click() twice instead of doubleClick()
Not waiting for alert before switching
Using XPath with absolute path for button locator
Not closing the alert after verification
Bonus Challenge

Now add data-driven testing with 3 different buttons that trigger different alerts on double click

Show Hint

Practice

(1/5)
1. What is the purpose of the doubleClick() method in Selenium WebDriver's Actions class?
easy
A. To perform a double-click action on a web element
B. To click and hold a web element
C. To right-click on a web element
D. To drag and drop a web element

Solution

  1. Step 1: Understand the Actions class role

    The Actions class in Selenium is used to build complex user interactions like mouse and keyboard events.
  2. Step 2: Identify the doubleClick() method function

    The doubleClick() method specifically performs a double-click on the targeted web element.
  3. Final Answer:

    To perform a double-click action on a web element -> Option A
  4. Quick Check:

    doubleClick() = double-click action [OK]
Hint: Double click means two quick clicks on the same element [OK]
Common Mistakes:
  • Confusing doubleClick() with clickAndHold()
  • Thinking doubleClick() performs right-click
  • Assuming doubleClick() drags elements
2. Which of the following is the correct syntax to perform a double click on a web element using Selenium WebDriver in Java?
easy
A. new Actions(driver).doubleClick(element).perform();
B. driver.doubleClick(element);
C. Actions.doubleClick(element).perform();
D. driver.actions().doubleClick(element).execute();

Solution

  1. Step 1: Recall the correct way to use Actions class

    In Selenium Java, you create an Actions object with the driver, then chain the doubleClick() method with the target element, and call perform() to execute.
  2. Step 2: Check each option's syntax

    new Actions(driver).doubleClick(element).perform(); matches the correct syntax: new Actions(driver).doubleClick(element).perform();. Others are invalid or incorrect method calls.
  3. Final Answer:

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

    Actions object + doubleClick + perform() = correct syntax [OK]
Hint: Always end Actions chain with perform() to execute [OK]
Common Mistakes:
  • Calling doubleClick directly on driver
  • Missing perform() at the end
  • Using incorrect method names or chaining
3. What will be the output of the following Selenium Java code snippet if the element is present and clickable?
WebElement element = driver.findElement(By.id("btn"));
new Actions(driver).doubleClick(element).perform();
System.out.println("Double click performed");
medium
A. Syntax error, code will not compile
B. No output, code throws NoSuchElementException
C. No output, code throws ElementNotInteractableException
D. Double click performed

Solution

  1. Step 1: Analyze element presence and action

    The element is found by ID and assumed present and clickable, so doubleClick() will execute without exceptions.
  2. Step 2: Check the print statement execution

    After performing the double click, the print statement will execute and output the string.
  3. Final Answer:

    Double click performed -> Option D
  4. Quick Check:

    Element found + doubleClick success = print output [OK]
Hint: If element exists and is clickable, actions run and print executes [OK]
Common Mistakes:
  • Assuming exceptions without element issues
  • Thinking doubleClick blocks further code
  • Confusing compile errors with runtime behavior
4. Identify the error in the following Selenium Java code snippet that tries to double click an element:
Actions action = new Actions(driver);
action.doubleClick();
action.perform();
medium
A. perform() should be called before doubleClick()
B. Actions object should be static
C. Missing target element in doubleClick() method
D. doubleClick() method does not exist in Actions class

Solution

  1. Step 1: Check doubleClick() method usage

    The doubleClick() method requires a target WebElement to act on. Calling it without an element is incorrect.
  2. Step 2: Validate method call order and existence

    Calling perform() after building the action is correct. The method exists and Actions object need not be static.
  3. Final Answer:

    Missing target element in doubleClick() method -> Option C
  4. Quick Check:

    doubleClick() needs element argument [OK]
Hint: Always pass the element to doubleClick() [OK]
Common Mistakes:
  • Calling doubleClick() without element
  • Wrong order of perform() call
  • Thinking Actions must be static
5. You want to double click on a button with id submitBtn and then verify if a confirmation message with id confirmMsg appears. Which of the following code snippets correctly performs this and asserts the message is displayed?
hard
A. WebElement btn = driver.findElement(By.id("submitBtn")); new Actions(driver).click(btn).click(btn).perform(); assertTrue(driver.findElement(By.id("confirmMsg")).isDisplayed());
B. WebElement btn = driver.findElement(By.id("submitBtn")); new Actions(driver).doubleClick(btn).perform(); WebElement msg = driver.findElement(By.id("confirmMsg")); assertTrue(msg.isDisplayed());
C. Actions action = new Actions(driver); action.doubleClick(); action.perform(); assertTrue(driver.findElement(By.id("confirmMsg")).isDisplayed());
D. driver.findElement(By.id("submitBtn")).doubleClick(); assertTrue(driver.findElement(By.id("confirmMsg")).isDisplayed());

Solution

  1. Step 1: Perform double click on the button element

    WebElement btn = driver.findElement(By.id("submitBtn")); new Actions(driver).doubleClick(btn).perform(); WebElement msg = driver.findElement(By.id("confirmMsg")); assertTrue(msg.isDisplayed()); correctly finds the button element and uses new Actions(driver).doubleClick(btn).perform(); to double click it.
  2. Step 2: Verify confirmation message is displayed

    WebElement btn = driver.findElement(By.id("submitBtn")); new Actions(driver).doubleClick(btn).perform(); WebElement msg = driver.findElement(By.id("confirmMsg")); assertTrue(msg.isDisplayed()); then finds the confirmation message element and asserts it is displayed using assertTrue(msg.isDisplayed());.
  3. Final Answer:

    Correct double click and assertion sequence -> Option B
  4. Quick Check:

    Find element + doubleClick + assert displayed = correct [OK]
Hint: Use Actions with element, then assert message visibility [OK]
Common Mistakes:
  • Using click twice instead of doubleClick()
  • Calling doubleClick() without element
  • Trying to doubleClick() directly on driver
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