如何在Selenium Webdriver 2 Python中获取当前URL?

ghhaqwfi  于 2023-06-28  发布在  Python
关注(0)|答案(5)|浏览(162)

我试图在Selenium中进行一系列导航后获取当前URL。我知道ruby有一个名为getLocation的命令,但我找不到Python的语法。

mmvthczy

mmvthczy1#

在Python 2中使用current_url元素:

print browser.current_url

对于Python 3和更高版本的selenium:

print(driver.current_url)
juzqafwq

juzqafwq2#

根据这个文档(一个充满好东西的地方:):

driver.current_url

或者,参见官方文档:https://www.selenium.dev/documentation/en/webdriver/browser_manipulation/#get-current-url

holgip5t

holgip5t3#

Selenium2Library有get_location():

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

cyvaqqii4#

另一种方法是检查chrome中的url栏以找到元素的id,让您的WebDriver单击该元素,然后使用selenium中的keys common函数发送您用于复制和粘贴的键,然后将其打印出来或将其存储为变量等。

e4yzc0pl

e4yzc0pl5#

有多种方法可以通过driver获取当前URL:

driver.current_url
driver.execute_script("return document.URL;")
driver.execute_script("return document.location.href;")
driver.execute_script("return window.location.href;")

(Note不同的JS变量之间存在差异,如下所示:https://stackoverflow.com/a/5388084/7058266
在某些情况下,您可能不需要完整的URL,而需要origin

driver.execute_script("return window.location.origin;")

例如,在stackoverflow页面上(比如这个),原点是https://stackoverflow.com。(当您不需要完整的URL时很有用。
还有一些流行的Python框架,比如SeleniumBase,内置了返回URL(或源)的方法:

self.get_current_url()    # SeleniumBase only
self.get_origin()         # SeleniumBase only

相关问题