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.
Use current_url element for Python 2:
print browser.current_url
For Python 3 and later versions of selenium:
print(driver.current_url)
driver.current_url
–
Grover 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
Selenium2Library has get_location():
import Selenium2Library
s = Selenium2Library.Selenium2Library()
url = s.get_location()
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.
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://mcmap.net/q/118960/-difference-between-document-url-and-location-href)
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
© 2022 - 2024 — McMap. All rights reserved.