The getTitle() method is a simple yet powerful utility provided by Selenium WebDriver in Java for retrieving the title of the current web page. Knowing how to utilize this method is crucial for validating page navigation and content during automated testing.
What Is the getTitle() Method?
The getTitle() method fetches the title of the active web page that the WebDriver instance has currently loaded. The page title is the text shown on the browser tab and within the <title>
HTML tag of the web page.
Syntax
String getTitle()
- Returns: A String containing the current page’s title.
Why Use getTitle() Method?
- Verification: Confirm that the browser navigated to the right page by matching the actual title with the expected one.
- Debugging: Print page titles during test execution to trace browser navigation.
- Assertions: Use in test assertions for pass/fail determination.
Complete Code Example
Here’s a consolidated example showing how to set up Selenium WebDriver and leverage the getTitle() method:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class GetTitleDemo { public static void main(String[] args) { // Set path to chromedriver System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); // Initialize WebDriver WebDriver driver = new ChromeDriver(); // Open a website driver.get("https://www.selenium.dev"); // Get the title of the current page String pageTitle = driver.getTitle(); // Print the title System.out.println("Page title is: " + pageTitle); // Validate the page title if(pageTitle.equals("Selenium")) { System.out.println("Test Passed: Title matches."); } else { System.out.println("Test Failed: Title does not match."); } // Close the browser driver.quit(); } }
Key Notes on getTitle() Method
- Null or Empty: If the page has no
<title>
element, it returns an empty string. - Current Page Only: Always fetches the title of the currently loaded page, so use it after navigation or actions that may trigger a page load.
- Return Type: Always returns a
String
; handle with appropriate string operations or checks.
Common Use Cases
- Asserting navigation worked:
- Check if getTitle() matches the expected page after an action (e.g., login or link click).
- Debugging and reporting:
- Print the current page title while running test suites to help trace test progress or failures.
- Multi-Page Flows:
- When navigating through several pages, use getTitle() to ensure each page transition is successful.
Best Practices
- Use assertions with getTitle() in test scripts for robust validation.
- For internationalized sites, consider variances in localized page titles.
- Always call getTitle() after the page has loaded to ensure accurate results.
The getTitle() method is a fundamental feature in Selenium Java, essential for validating and debugging automated browser flows. By incorporating this simple check, you can enhance your test reliability and clarity.