如何使用Selenium获取当前页面的URL方法

1. 简介

在使用Selenium进行Web自动化测试时,经常需要获取当前页面的URL。本文将介绍如何使用Python的Selenium库来实现这一功能。我们将按照以下步骤进行讲解:

  1. 安装Selenium库
  2. 创建Selenium WebDriver对象
  3. 打开网页
  4. 获取当前页面的URL

2. 安装Selenium库

在开始之前,我们需要先安装Selenium库。可以使用以下命令来安装Selenium:

pip install selenium

3. 创建Selenium WebDriver对象

在使用Selenium之前,我们需要先创建一个Selenium WebDriver对象。WebDriver是Selenium的核心组件,它可以模拟用户在Web浏览器上的操作。

from selenium import webdriver

# 创建Chrome WebDriver对象
driver = webdriver.Chrome()

上述代码创建了一个Chrome WebDriver对象。你也可以根据你的需要选择其他浏览器的WebDriver,比如Firefox、Edge等。

4. 打开网页

在获取当前页面的URL之前,我们需要先打开一个网页。可以使用WebDriver的get()方法来打开指定的网页。

# 打开百度首页
driver.get("

上述代码将打开百度首页。你可以将网址替换为你想要打开的网页。

5. 获取当前页面的URL

现在,我们已经打开了一个网页,下面就是获取当前页面的URL。可以使用current_url属性来获取当前页面的URL。

# 获取当前页面的URL
url = driver.current_url
print(url)

上述代码将获取当前页面的URL并打印出来。

6. 完整代码示例

from selenium import webdriver

# 创建Chrome WebDriver对象
driver = webdriver.Chrome()

# 打开百度首页
driver.get("

# 获取当前页面的URL
url = driver.current_url
print(url)

# 关闭WebDriver对象
driver.quit()

7. 关系图

下图是本文所涉及的类之间的关系图:

erDiagram
    WebDriver ||.. ChromeWebDriver : 继承
    WebDriver ||-- FirefoxWebDriver : 继承
    WebDriver ||-- EdgeWebDriver : 继承
    WebDriver ||-- SafariWebDriver : 继承
    WebDriver ..|> SearchContext : 实现
    ChromeWebDriver ..|> Chrome : 依赖
    FirefoxWebDriver ..|> Firefox : 依赖
    EdgeWebDriver ..|> Edge : 依赖
    SafariWebDriver ..|> Safari : 依赖

8. 类图

下图是本文所涉及的类之间的类图:

classDiagram
    class WebDriver {
        - capabilities : DesiredCapabilities
        - is_remote : bool
        - w3c : bool
        - executable_path : Optional[str]
        + __init__(self, executable_path: Optional[str] = None, capabilities: Optional[Dict[str, Any]] = None, port: int = 0, options: Optional[Options] = None, service_args: Optional[List[str]] = None, desired_capabilities: Optional[Dict[str, Any]] = None, service_log_path: Optional[str] = None, chrome_options: Optional[Options] = None, firefox_options: Optional[Options] = None)
        + start_session(capabilities, browser_profile)
        + create_options()
        + quit()
        + set_page_load_timeout(time_to_wait)
        + implicitly_wait(time_to_wait)
        + set_script_timeout(time_to_wait)
        + get(url)
        + current_url
        + page_source
        + execute_script(script, *args)
        + execute_async_script(script, *args)
        + find_element(by=By.ID, value=None)
        + find_elements(by=By.ID, value=None)
        + find_element_by_id(id_)
        + find_elements_by_id(id_)
        + find_element_by_xpath(xpath)
        + find_elements_by_xpath(xpath)
        + find_element_by_link_text(link_text)
        + find_elements_by_link_text(link_text)
        + find_element_by_partial_link_text(link_text)
        + find_elements_by_partial_link_text(link_text)
        + find_element_by_name(name)
        + find_elements_by_name(name)
        + find_element_by_tag_name(name)
        + find_elements_by_tag_name(name)
        + find_element_by_class_name(name)
        + find_elements_by_class_name(name)
        + find_element_by_css_selector(css_selector)
        + find_elements_by_css_selector(css_selector)
        + title
        + close()
        + window