We get the page title and URL to check if the right webpage opened. It helps us confirm the website works as expected.
Page title and URL retrieval in Selenium Python
from selenium import webdriver # Create a browser driver driver = webdriver.Chrome() # Open a webpage driver.get('https://example.com') # Get page title title = driver.title # Get current URL url = driver.current_url # Print title and URL print(f"Title: {title}") print(f"URL: {url}") # Close the browser driver.quit()
driver.title returns the page title as a string.
driver.current_url returns the current page URL as a string.
driver.get('https://www.google.com') print(driver.title) print(driver.current_url)
driver.get('https://example.com/nonexistentpage') print(driver.title) print(driver.current_url)
driver.get('https://example.com') print(driver.title) print(driver.current_url) # After clicking a link link = driver.find_element('link text', 'More information...') link.click() print(driver.title) print(driver.current_url)
This script opens example.com, prints the title and URL, clicks the 'More information...' link, waits 2 seconds, then prints the new page's title and URL before closing the browser.
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import time # Setup Chrome driver (make sure chromedriver is in PATH) service = Service() driver = webdriver.Chrome(service=service) try: # Open example.com driver.get('https://example.com') print(f"Before clicking link:") print(f"Title: {driver.title}") print(f"URL: {driver.current_url}") # Find and click the 'More information...' link link = driver.find_element(By.LINK_TEXT, 'More information...') link.click() # Wait for page to load time.sleep(2) print(f"After clicking link:") print(f"Title: {driver.title}") print(f"URL: {driver.current_url}") finally: driver.quit()
Getting the title and URL is very fast (O(1) time complexity).
These properties do not use extra memory beyond storing strings (O(1) space complexity).
Common mistake: Trying to get title or URL before the page fully loads may give old or empty values. Use waits if needed.
Use title and URL checks to confirm navigation worked instead of relying only on page elements.
Use driver.title to get the page title as a string.
Use driver.current_url to get the current page URL as a string.
Check these after navigation to confirm you are on the expected page.
Practice
Solution
Step 1: Understand the purpose of
Thedriver.titledriver.titleproperty returns the title of the current page as a string.Step 2: Compare with other properties
driver.page_sourcereturns the HTML source,driver.current_urlreturns the URL, anddriver.get_title()is not a valid method in Selenium Python.Final Answer:
driver.title -> Option CQuick Check:
Page title = driver.title [OK]
- Confusing driver.title with driver.current_url
- Using driver.get_title() which does not exist
- Trying to get title from page_source
Solution
Step 1: Recall the property for current URL
In Selenium Python,driver.current_urlis a property that returns the current page URL as a string.Step 2: Check syntax correctness
driver.get_current_url(),driver.url(), anddriver.getUrluse invalid method names or syntax. Onlyurl = driver.current_urlis correct without parentheses.Final Answer:
url = driver.current_url -> Option AQuick Check:
Current URL = driver.current_url [OK]
- Adding parentheses to current_url like a method
- Using incorrect method names like get_current_url()
- Trying to access URL via driver.url()
print(driver.title) print(driver.current_url)
Solution
Step 1: Understand what driver.title returns
driver.titlereturns the page title string, here "Welcome Page".Step 2: Understand what driver.current_url returns
driver.current_urlreturns the current URL string, here "https://example.com/home".Final Answer:
Welcome Page https://example.com/home -> Option AQuick Check:
Title then URL printed correctly [OK]
- Swapping title and URL order in output
- Thinking driver.title/current_url are methods needing ()
- Expecting variable names printed instead of values
print(driver.get_title()) print(driver.get_current_url())
Solution
Step 1: Check method existence in Selenium Python
There are no methods namedget_title()orget_current_url()in Selenium Python WebDriver.Step 2: Use correct properties
The correct way is to usedriver.titleanddriver.current_urlwithout parentheses as they are properties, not methods.Final Answer:
driver.get_title() and driver.get_current_url() are not valid methods in Selenium Python -> Option BQuick Check:
Use properties, not get_ methods [OK]
- Calling driver.title() or driver.current_url() as methods
- Trying to import non-existent get_title functions
- Confusing Selenium Python with other language APIs
Solution
Step 1: Use correct properties and operators
Usedriver.titleto get the page title anddriver.current_urlto get the URL. Use == to check exact title and 'in' to check substring in URL.Step 2: Understand assertion logic
Use 'and' to ensure both conditions are true. assert driver.title == "Login Page" or driver.current_url == "/login" uses 'or' which passes if only one condition is true, not both.Final Answer:
assert driver.title == "Login Page" and "/login" in driver.current_url -> Option DQuick Check:
Use properties and 'and' for combined checks [OK]
- Calling title or current_url as methods
- Using 'or' instead of 'and' in assertions
- Checking URL equality instead of substring
Ready to prove it?
Pass the test and this pattern moves unknown
