0
0
Selenium Javatesting~10 mins

ExpectedConditions class in Selenium Java - Test Execution Trace

Choose your learning style9 modes available
Test Overview

This test uses Selenium's ExpectedConditions class to wait until a button is clickable before clicking it. It verifies that the button click leads to the expected page title change.

Test Code - JUnit 5 with Selenium WebDriver
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.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.time.Duration;

public class ExpectedConditionsTest {
    WebDriver driver;
    WebDriverWait wait;

    @BeforeEach
    public void setUp() {
        driver = new ChromeDriver();
        wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    }

    @Test
    public void testButtonClickable() {
        driver.get("https://example.com/buttonpage");
        By buttonLocator = By.id("submit-btn");
        WebElement button = wait.until(ExpectedConditions.elementToBeClickable(buttonLocator));
        button.click();
        wait.until(ExpectedConditions.titleIs("Submission Successful"));
        assertEquals("Submission Successful", driver.getTitle());
    }

    @AfterEach
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}
Execution Trace - 7 Steps
StepActionSystem StateAssertionResult
1Test starts and Chrome browser opensChrome browser window is open and ready-PASS
2Navigates to https://example.com/buttonpagePage with a button having id 'submit-btn' is loaded-PASS
3Waits until the button with id 'submit-btn' is clickable using ExpectedConditions.elementToBeClickableButton is visible and enabled for clickingButton is clickablePASS
4Clicks the buttonButton click triggers page change-PASS
5Waits until the page title is 'Submission Successful' using ExpectedConditions.titleIsPage title changes to 'Submission Successful'Page title is exactly 'Submission Successful'PASS
6Asserts that the page title equals 'Submission Successful'Page title is 'Submission Successful'assertEquals passesPASS
7Browser closes and test endsBrowser window closed-PASS
Failure Scenario
Failing Condition: Button with id 'submit-btn' is not clickable within 10 seconds
Execution Trace Quiz - 3 Questions
Test your understanding
What does ExpectedConditions.elementToBeClickable ensure before clicking?
AThe element is present in the DOM only
BThe element is hidden but enabled
CThe element is visible and enabled for clicking
DThe element is disabled
Key Result
Using ExpectedConditions with WebDriverWait helps tests wait smartly for elements or page states, making tests more reliable and faster than fixed waits.