如何使用Selenium获取当前页面的URL方法
1. 简介
在使用Selenium进行Web自动化测试时,经常需要获取当前页面的URL。本文将介绍如何使用Python的Selenium库来实现这一功能。我们将按照以下步骤进行讲解:
- 安装Selenium库
- 创建Selenium WebDriver对象
- 打开网页
- 获取当前页面的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