Bird
Raised Fist0
Selenium Javatesting~10 mins

First Selenium Java test - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test opens a browser, navigates to a website, finds the page title element, and checks if the title text is correct.

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.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class FirstSeleniumTest {
    private WebDriver driver;

    @BeforeEach
    public void setUp() {
        // Set path to chromedriver executable if needed
        driver = new ChromeDriver();
    }

    @Test
    public void testPageTitle() {
        driver.get("https://example.com");
        WebElement titleElement = driver.findElement(By.tagName("h1"));
        String titleText = titleElement.getText();
        assertEquals("Example Domain", titleText);
    }

    @AfterEach
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}
Execution Trace - 6 Steps
StepActionSystem StateAssertionResult
1Test starts and ChromeDriver instance is createdBrowser window opens, blank page—PASS
2Browser navigates to https://example.comBrowser shows Example Domain page with heading 'Example Domain'—PASS
3Find element by tag name 'h1'Element found with text 'Example Domain'—PASS
4Get text from the found elementText retrieved: 'Example Domain'—PASS
5Assert that the text equals 'Example Domain'Text matches expected valueassertEquals("Example Domain", titleText)PASS
6Close browser and quit driverBrowser window closes—PASS
Failure Scenario
Failing Condition: The element with tag name 'h1' is not found on the page
Execution Trace Quiz - 3 Questions
Test your understanding
What does the test check after opening the page?
AThe page URL contains 'example.com'
BThe text inside the <h1> element is 'Example Domain'
CThe browser window is maximized
DThe page background color is white
Key Result
Always verify that the element you want to test exists on the page before asserting its content. Use clear locators like tag name or id for reliable element finding.

Practice

(1/5)
1. What is the main purpose of a Selenium Java test?
easy
A. To write Java programs unrelated to browsers
B. To automate browser actions like opening a page and checking content
C. To manually test software without code
D. To design user interfaces

Solution

  1. Step 1: Understand Selenium's role

    Selenium is used to automate browser actions such as opening pages and clicking buttons.
  2. Step 2: Identify the test goal

    The main goal of a Selenium Java test is to automate browser tasks and verify web page behavior.
  3. Final Answer:

    To automate browser actions like opening a page and checking content -> Option B
  4. Quick Check:

    Selenium test = automate browser [OK]
Hint: Selenium automates browsers, not manual or UI design tasks [OK]
Common Mistakes:
  • Confusing Selenium with manual testing
  • Thinking Selenium is for UI design
  • Assuming Selenium runs non-browser Java code
2. Which of the following is the correct way to start a Chrome browser in Selenium Java?
easy
A. WebDriver driver = new ChromeDriver();
B. ChromeDriver driver = WebDriver();
C. driver = new WebDriver.Chrome();
D. WebDriver driver = ChromeDriver();

Solution

  1. Step 1: Recall Selenium WebDriver syntax

    The correct way is to declare WebDriver interface and instantiate ChromeDriver class.
  2. Step 2: Check each option's syntax

    WebDriver driver = new ChromeDriver(); uses correct Java syntax: WebDriver driver = new ChromeDriver(); others have syntax errors or wrong order.
  3. Final Answer:

    WebDriver driver = new ChromeDriver(); -> Option A
  4. Quick Check:

    Use interface = new implementation() [OK]
Hint: Use WebDriver driver = new ChromeDriver(); to start Chrome [OK]
Common Mistakes:
  • Missing 'new' keyword
  • Wrong constructor call syntax
  • Assigning without type declaration
3. What will be the output of this Selenium Java code snippet?
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
String title = driver.getTitle();
System.out.println(title);
driver.quit();

Assuming the page title is "Example Domain".
medium
A. Example Domain
B. https://example.com
C. null
D. No output, code throws error

Solution

  1. Step 1: Understand driver.getTitle()

    driver.getTitle() returns the title of the current page, which is "Example Domain" here.
  2. Step 2: Check the print statement

    System.out.println(title) prints the page title to the console.
  3. Final Answer:

    Example Domain -> Option A
  4. Quick Check:

    getTitle() prints page title [OK]
Hint: getTitle() returns page title string [OK]
Common Mistakes:
  • Confusing URL with title
  • Expecting no output
  • Assuming getTitle() returns null
4. Identify the error in this Selenium Java code snippet:
import org.openqa.selenium.By;
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
WebElement button = driver.findElement(By.id("submit"));
button.click();
driver.close();
medium
A. Missing import for By class
B. findElement should use By.name instead of By.id
C. driver.close() should be driver.quit() to close browser fully
D. button.click() is not valid for WebElement

Solution

  1. Step 1: Understand driver.close() vs driver.quit()

    driver.close() closes current tab, driver.quit() closes entire browser session.
  2. Step 2: Check best practice for test cleanup

    To fully close browser and end session, driver.quit() is preferred after test.
  3. Final Answer:

    driver.close() should be driver.quit() to close browser fully -> Option C
  4. Quick Check:

    Use quit() to close browser fully [OK]
Hint: Use driver.quit() to close browser fully after test [OK]
Common Mistakes:
  • Using driver.close() only closes one tab
  • Confusing By.id and By.name without context
  • Assuming button.click() is invalid
5. You want to write a Selenium Java test that opens a browser, navigates to "https://example.com", verifies the page title is "Example Domain", and then closes the browser. Which code snippet correctly performs this test with assertion?
hard
A. WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); assert driver.getTitle().equals("Example Domain"); driver.quit();
B. WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); if(driver.getTitle() == "Example Domain") { System.out.println("Title matches"); } driver.close();
C. WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); assert driver.getTitle() == "Example Domain"; driver.quit();
D. WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); assertEquals("Example Domain", driver.getTitle()); driver.quit();

Solution

  1. Step 1: Check assertion method correctness

    assertEquals(expected, actual) is the correct JUnit assertion method to compare strings.
  2. Step 2: Verify browser close method

    driver.quit() properly closes the browser after test.
  3. Step 3: Identify errors in other options

    WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); assert driver.getTitle().equals("Example Domain"); driver.quit(); uses plain assert with equals() but is less clear; WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); if(driver.getTitle() == "Example Domain") { System.out.println("Title matches"); } driver.close(); uses == for string comparison (wrong); WebDriver driver = new ChromeDriver(); driver.get("https://example.com"); assert driver.getTitle() == "Example Domain"; driver.quit(); uses == in assert (wrong).
  4. Final Answer:

    assertEquals("Example Domain", driver.getTitle()); with driver.quit() -> Option D
  5. Quick Check:

    Use assertEquals for string check, quit() to close browser [OK]
Hint: Use assertEquals(expected, actual) and driver.quit() [OK]
Common Mistakes:
  • Using == to compare strings
  • Using driver.close() instead of quit()
  • Missing proper assertion method
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