user2276896
user2276896

Reputation: 2574

How do I get current URL in Selenium Webdriver 2 Python?

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

Answers (6)

user11555371
user11555371

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

Michael Mintz
Michael Mintz

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

pbaranski
pbaranski

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

4d4c
4d4c

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

LiamººT
LiamººT

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

Milanka
Milanka

Reputation: 1842

Selenium2Library has get_location():

import Selenium2Library
s = Selenium2Library.Selenium2Library()
url = s.get_location()

Upvotes: 7

Related Questions