Selenium Python 中的 XPath 是什么?

17 Mar 2025 | 4 分钟阅读

Selenium in Python

Selenium 是一个开源 Python 框架,它提供了API,用于使用 Selenium 编写功能测试。它用于 Web 应用程序的跨浏览器测试。各种脚本语言支持此库,如 Python、Java、Node.js、C# 和 Ruby。

Selenium 的开发旨在驱动浏览器执行测试,以供开发人员、项目经理和质量保证工程师用于加速测试。多年来,Selenium 已从一项驱动单个浏览器和运行测试的技术,发展成为一个标准的软件协议,用于像人类一样与浏览器交互,一个用于录制和回放测试(Selenium IDE)的浏览器内工具,一个用于同时运行多个测试的分布式计算网格(Selenium Grid),以及更多。

使用Web 驱动程序,Selenium 可以导航 Web 浏览器并执行所需的测试,如搜索网页、滚动页面、解析页面、同时运行多个测试等。

安装 Python 中的 Selenium 库

可以使用命令提示符或任何 Python 终端使用此命令安装 Python 中的 Selenium 库

在 Selenium 中实现框架的第一步是查找浏览器中的 Web 元素。XPath 有助于查找这些 Web 元素并导航 Web 浏览器。

Selenium 中的 XPath

Selenium 库中的 XPath 是用于动态定位 Web 元素的路径。XPath 被称为XML 路径语言。XPath 与 Selenium WebDriver 一起使用,通过其HTML 结构通过获取所需的标签来导航网页。它可以定位HTML 和 XML 文档的元素。XPath 可以准确地为自动化测试导航网页。

当 Web 驱动程序导航任何 Web 浏览器时,它会创建一个DOM(文档对象模型)结构。然后,XPath 表达式在文档对象模型结构中查找 Web 元素。

Selenium 中 XPath 的语法

Selenium 库中的 XPath 可以表示为

此处,

  • driver 是 Web 驱动程序
  • find_element 是定位 Web 元素的方法
  • XPath 是获取 XPath 的方法
  • XPath 是通过 HTML 结构在浏览器中定位 Web 元素的路径。

Selenium 中 XPath 的格式

此处,

  • tag_name 是当前节点的标签名
  • @ 是选择属性
  • Attr 是节点的属性
  • Val 是属性的值

在 Selenium 中使用 XPath

让我们了解如何使用 XPath 获取 Web 元素

示例 1:使用 Selenium 导航网页并使用 XPath 获取 Web 元素的程序。

代码

导入所需的包

2. 使用 Web 驱动程序打开 Web 浏览器

3. 获取用于获取 Web 元素的 XPath

输出

<selenium.webdriver.remote.webelement.WebElement (session="b676ae0461ecd5fe1870a8c44dcb9200", element="9A35AA5EC57622AD748FCBB7F1FE36AD_element_4230")>

浏览器输出

What is XPath in Selenium with Python

说明

在此代码中,我们使用selenium web drivers打开了javatpoint 网页,并使用带有XPathfind_element,我们追踪了搜索栏选项。

Web 驱动程序将在新窗口中打开一个新浏览器,然后根据要求进行导航。

如何在 Selenium 中按 XPath 查找元素?

首先必须通过其XML 路径确定指定Web 元素位置,以便在DOM 结构中更改它。XPath 通常是开始在 Selenium 中使用定位器来完成此任务的最简单方法。查看页面上的组件的首选定位器XPath。如果ID、name、class name等通用定位器无法识别元素,XPath 可以从XML 或 HTML 文档中提取数据。

Selenium 中的各种定位器用于使用其标签或 CSS 类名搜索元素。使用 ID 和 CSS 标签定位元素是最快的,但我们可以将XPath 移至 CSS 标签XPath 定位器可以进行更复杂深入的搜索

创建 XPath 有不同的方法

  • Parent
  • Child
  • 祖先
  • 自身
  • Starts_with()
  • Ends_with()
  • 前置

除了这些之外,还有许多创建 XPath 的方法。

Selenium 中 XPath 的不同类型

两种类型的 XPath用于定位元素:

  1. 绝对 XPath
  2. 相对 XPath

路径由其 XPath 节点指定,该节点可以是路径的起点到元素所在的位置,也可以是 DOM 中的一个点。

绝对 XPath

绝对 XPath是一种用于绝对地定位元素的 XPath 类型。它具有从起始节点(路径的开始)到目标元素的所有元素的位置。如果节点发生任何更改调整 XPath 定义的标签,使用绝对 XPath进行导航可能会导致问题

绝对 XPath 的示例

绝对 XPath 始终以正斜杠 "/"开头。

相对 XPath

相对 XPath是一种用于从网页的任何部分定位元素的 XPath 类型。当元素具有ID 或 name 属性时,XPath 也可以是相对的。它可以从HTML 结构的中部开始。它比绝对路径短得多。

相对 XPath 的示例

相对 XPath 始终以双正斜杠 "//"开头。