Bird
Raised Fist0
Selenium Javatesting~15 mins

Page title and URL retrieval in Selenium Java - Build an Automation Script

Choose your learning style10 modes available
Verify page title and URL after navigating to example.com
Preconditions (3)
Step 1: Open a new browser window using Selenium WebDriver
Step 2: Navigate to the URL 'https://www.example.com'
Step 3: Retrieve the page title
Step 4: Retrieve the current page URL
Step 5: Verify that the page title is exactly 'Example Domain'
Step 6: Verify that the current URL is exactly 'https://www.example.com/'
Step 7: Close the browser
✅ Expected Result: The page title matches 'Example Domain' and the URL matches 'https://www.example.com/'
Automation Requirements - Selenium WebDriver with Java
Assertions Needed:
Assert that the page title equals 'Example Domain'
Assert that the current URL equals 'https://www.example.com/'
Best Practices:
Use explicit waits if needed (not required here as page is simple)
Use WebDriver's getTitle() and getCurrentUrl() methods
Close the browser in a finally block or use try-with-resources
Use meaningful assertion messages
Automated Solution
Selenium Java
import org.openqa.selenium.WebDriver;
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 PageTitleAndUrlTest {
    private WebDriver driver;

    @BeforeEach
    public void setUp() {
        // Assuming chromedriver is in system PATH
        driver = new ChromeDriver();
    }

    @Test
    public void testPageTitleAndUrl() {
        driver.get("https://www.example.com");

        String actualTitle = driver.getTitle();
        String actualUrl = driver.getCurrentUrl();

        assertEquals("Example Domain", actualTitle, "Page title should be 'Example Domain'");
        assertEquals("https://www.example.com/", actualUrl, "URL should be 'https://www.example.com/'");
    }

    @AfterEach
    public void tearDown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

This test class uses JUnit 5 and Selenium WebDriver with ChromeDriver.

setUp() method initializes the ChromeDriver before each test.

testPageTitleAndUrl() navigates to 'https://www.example.com', retrieves the page title and URL, then asserts both match the expected values with clear messages.

tearDown() closes the browser after the test to free resources.

This structure ensures the browser opens fresh for each test and closes properly, following best practices.

Common Mistakes - 4 Pitfalls
Not closing the browser after test execution
{'mistake': 'Using hardcoded waits like Thread.sleep() instead of relying on page load or explicit waits', 'why_bad': 'Slows tests unnecessarily and can cause flaky behavior if page loads faster or slower', 'correct_approach': "Use WebDriver's built-in page load wait or explicit waits when needed"}
Using incorrect assertion methods or comparing to wrong expected values
Not verifying the URL after navigation
Bonus Challenge

Now add data-driven testing with 3 different URLs and their expected titles

Show Hint

Practice

(1/5)
1. Which Selenium WebDriver method is used to retrieve the title of the current webpage as a string?
easy
A. getTitle()
B. getPageTitle()
C. getCurrentUrl()
D. getUrl()

Solution

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

    This method returns the title of the current webpage as a string, which helps verify the page loaded.
  2. Step 2: Compare with other methods

    getCurrentUrl() returns the URL, not the title. The other options are not valid Selenium methods.
  3. Final Answer:

    getTitle() -> Option A
  4. Quick Check:

    Page title retrieval = getTitle() [OK]
Hint: Remember: Title uses getTitle(), URL uses getCurrentUrl() [OK]
Common Mistakes:
  • Confusing getTitle() with getCurrentUrl()
  • Using non-existent methods like getPageTitle()
  • Trying to get title from URL method
2. Which of the following is the correct Java syntax to get the current page URL using Selenium WebDriver stored in variable driver?
easy
A. String url = driver.getUrl();
B. String url = driver.currentUrl();
C. String url = driver.getPageUrl();
D. String url = driver.getCurrentUrl();

Solution

  1. Step 1: Identify the correct method name

    The correct Selenium method to get the current URL is getCurrentUrl().
  2. Step 2: Check Java syntax correctness

    Assigning the result to a String variable with String url = driver.getCurrentUrl(); is correct syntax.
  3. Final Answer:

    String url = driver.getCurrentUrl(); -> Option D
  4. Quick Check:

    URL retrieval syntax = getCurrentUrl() [OK]
Hint: Use getCurrentUrl() exactly as shown for URL retrieval [OK]
Common Mistakes:
  • Using getUrl() instead of getCurrentUrl()
  • Missing String type declaration
  • Calling methods without parentheses
3. What will be the output of the following code snippet if the current page title is "Welcome Page" and URL is "https://example.com/home"?
String title = driver.getTitle();
String url = driver.getCurrentUrl();
System.out.println(title);
System.out.println(url);
medium
A. null null
B. https://example.com/home Welcome Page
C. Welcome Page https://example.com/home
D. Welcome Page null

Solution

  1. Step 1: Understand method outputs

    getTitle() returns the page title "Welcome Page" and getCurrentUrl() returns the URL "https://example.com/home".
  2. Step 2: Check print order

    The code prints title first, then URL, so output matches Welcome Page https://example.com/home exactly.
  3. Final Answer:

    Welcome Page https://example.com/home -> Option C
  4. Quick Check:

    Title then URL printed = Welcome Page https://example.com/home [OK]
Hint: Print order matches method call order: title then URL [OK]
Common Mistakes:
  • Mixing up title and URL order in output
  • Assuming methods return null without page loaded
  • Confusing getTitle() with getCurrentUrl() output
4. Identify the error in the following Selenium Java code snippet that tries to print the page title and URL:
System.out.println(driver.gettitle());
System.out.println(driver.getCurrentUrl);
medium
A. getCurrentUrl() returns void, cannot print
B. Method names are case-sensitive and parentheses are missing
C. driver object is not declared
D. No error, code will run fine

Solution

  1. Step 1: Check method name case sensitivity

    Java is case-sensitive; gettitle() should be getTitle().
  2. Step 2: Verify method call syntax

    getCurrentUrl is missing parentheses (), so it is not a valid method call.
  3. Final Answer:

    Method names are case-sensitive and parentheses are missing -> Option B
  4. Quick Check:

    Correct method names and parentheses needed [OK]
Hint: Check method names exactly and include () for calls [OK]
Common Mistakes:
  • Ignoring case sensitivity in method names
  • Forgetting parentheses on method calls
  • Assuming methods return void incorrectly
5. You want to verify that your Selenium test is on the correct page by checking both the page title and URL. Which of the following code snippets correctly asserts that the title is "Dashboard" and the URL contains "dashboard"?
hard
A. assertEquals(driver.getTitle(), "Dashboard"); assertTrue(driver.getCurrentUrl().contains("dashboard"));
B. assertTrue(driver.getTitle().equals("Dashboard")); assertEquals(driver.getCurrentUrl(), "dashboard");
C. assertEquals(driver.getTitle(), "dashboard"); assertTrue(driver.getCurrentUrl().contains("Dashboard"));
D. assertTrue(driver.getTitle().contains("Dashboard")); assertTrue(driver.getCurrentUrl().equals("dashboard"));

Solution

  1. Step 1: Verify title assertion

    assertEquals(driver.getTitle(), "Dashboard") correctly checks exact title match.
  2. Step 2: Verify URL assertion

    assertTrue(driver.getCurrentUrl().contains("dashboard")) correctly checks URL contains substring "dashboard".
  3. Final Answer:

    assertEquals(driver.getTitle(), "Dashboard"); assertTrue(driver.getCurrentUrl().contains("dashboard")); -> Option A
  4. Quick Check:

    Exact title and URL substring check = assertEquals(driver.getTitle(), "Dashboard"); assertTrue(driver.getCurrentUrl().contains("dashboard")); [OK]
Hint: Use assertEquals for exact title, assertTrue with contains for URL [OK]
Common Mistakes:
  • Using equals for URL when substring check needed
  • Mixing case sensitivity in title and URL checks
  • Using contains for title when exact match required
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