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.
-
Selenium doc explains it all :https://www.selenium.dev/docs/site/en/webdriver/browser_manipulation/#get-current-url – anandharshan Jun 29 '20 at 04:05
-
@anandharshan this link Not working. please update it – TipVisor Jun 15 '22 at 12:14
5 Answers
Use current_url element for Python 2:
print browser.current_url
For Python 3 and later versions of selenium:
print(driver.current_url)
-
175
-
3suppose, there is a chain of page p1->p2->p3 where p2 on the basis of credentials in p1 is redirecting to either p1 or p3. How to get the url just after clicking which I am not able to understand. selenium doesnot stop at that page and is directly giving me the url of p3. how to go for this? – proprius Jan 07 '16 at 09:54
-
@proprius https://stackoverflow.com/questions/35592602/how-can-i-get-a-intermediate-url-from-a-redirect-chain-from-selenium-using-pytho – ed22 Jul 09 '19 at 09:59
-
more importantly, where is this documented on https://selenium-python.readthedocs.io/ ? – Robert Johnstone Mar 17 '20 at 09:33
-
1@RobertJohnstone: https://selenium-python.readthedocs.io/api.html?highlight=current_url#selenium.webdriver.remote.webdriver.WebDriver.current_url – xibalba1 Sep 14 '21 at 20:05
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

- 22,778
- 19
- 100
- 117
Selenium2Library has get_location():
import Selenium2Library
s = Selenium2Library.Selenium2Library()
url = s.get_location()

- 1,742
- 19
- 15
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.

- 69
- 2
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

- 9,007
- 6
- 31
- 48