Bird
Raised Fist0
Selenium Javatesting~8 mins

Page title and URL retrieval in Selenium Java - Framework Patterns

Choose your learning style10 modes available
Framework Mode - Page title and URL retrieval
Folder Structure
src/
└── test/
    └── java/
        └── com/
            └── example/
                ├── pages/
                │   └── HomePage.java
                ├── tests/
                │   └── HomePageTest.java
                ├── utils/
                │   └── WebDriverFactory.java
                └── config/
                    └── TestConfig.java
  
Test Framework Layers
  • Driver Layer: Manages WebDriver setup and teardown (e.g., WebDriverFactory.java).
  • Page Objects: Classes representing web pages with methods to retrieve title and URL (e.g., HomePage.java).
  • Tests: Test classes that use page objects to verify page title and URL (e.g., HomePageTest.java).
  • Utilities: Helper classes for common functions like waits or logging.
  • Configuration: Holds environment settings, browser types, and credentials (e.g., TestConfig.java).
Configuration Patterns

Use a TestConfig.java class or test.properties file to manage:

  • Base URLs for different environments (dev, staging, production).
  • Browser types (Chrome, Firefox) to run tests on.
  • Timeouts and wait durations.

Example snippet in TestConfig.java:

public class TestConfig {
    public static final String BASE_URL = "https://example.com";
    public static final String BROWSER = "chrome";
    public static final int TIMEOUT_SECONDS = 10;
}
Test Reporting and CI/CD Integration
  • Use TestNG or JUnit reports to show test pass/fail results.
  • Integrate with CI tools like Jenkins or GitHub Actions to run tests automatically on code changes.
  • Generate HTML or XML reports for easy review.
  • Include screenshots on failure for debugging.
Best Practices
  • Use Page Object Model: Keep page title and URL retrieval methods inside page classes.
  • Explicit Waits: Wait for page load before retrieving title or URL to avoid flaky tests.
  • Centralize Configuration: Manage URLs and browser settings in one place for easy updates.
  • Clear Test Assertions: Assert expected title and URL with meaningful messages.
  • Clean Driver Management: Properly open and close browser sessions in setup and teardown methods.
Self Check

Where would you add a new method to retrieve the page URL for the Login page in this framework structure?

Key Result
Organize tests using Page Object Model with clear layers for driver, pages, tests, utilities, and config to retrieve page title and URL reliably.

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