Reputation: 2574
I'm trying to get the current url after a series of navigations in Selenium. I know there's a command called getLocation for ruby, but I can't find the syntax for Python.
Upvotes: 248
Views: 350013
Reputation:
To get the current URL of the page in Selenium, you can use the driver.current_url property. Here's an example:
from selenium import webdriver
# Initialize the driver (replace with your browser driver)
driver = webdriver.Chrome()
# Open a webpage
driver.get("https://example.com")
# Get the current URL
current_url = driver.current_url
print("Current URL:", current_url)
# Close the driver
driver.quit()
Upvotes: 0
Reputation: 15381
There are multiple ways to get the current URL via the driver
:
driver.current_url
driver.execute_script("return document.URL;")
driver.execute_script("return document.location.href;")
driver.execute_script("return window.location.href;")
(Note that there are differences between the various JS variables for this, as specified here: https://stackoverflow.com/a/5388084/7058266)
In some cases, you might not want the full URL, but the origin
instead:
driver.execute_script("return window.location.origin;")
For example, on stackoverflow pages (such as this one), the origin is https://stackoverflow.com
. (Useful for when you don't want the full URL.)
There are also popular Python frameworks, such as SeleniumBase, with built-in methods for returning the URL, (or the origin):
self.get_current_url() # SeleniumBase only
self.get_origin() # SeleniumBase only
Upvotes: 0
Reputation: 24952
According to this documentation (a place full of goodies:)):
driver.current_url
or, see official documentation: https://www.selenium.dev/documentation/en/webdriver/browser_manipulation/#get-current-url
Upvotes: 99
Reputation: 8159
Use current_url element for Python 2:
print browser.current_url
For Python 3 and later versions of selenium:
print(driver.current_url)
Upvotes: 447
Reputation: 69
Another way to do it would be to inspect the url bar in chrome to find the id of the element, have your WebDriver click that element, and then send the keys you use to copy and paste using the keys common function from selenium, and then printing it out or storing it as a variable, etc.
Upvotes: 2
Reputation: 1842
Selenium2Library has get_location():
import Selenium2Library
s = Selenium2Library.Selenium2Library()
url = s.get_location()
Upvotes: 7