使用Selenium Python的find_element()驱动方法2025 年 1 月 5 日 | 阅读 9 分钟 Selenium 简介Selenium Python 是一个非常出色的自动化测试工具。Selenium Python 用于查找元素,它会搜索元素,如果元素不存在,则会抛出异常。如今,许多 Web 应用程序都使用了 Angular 和 AJAX 方法。Selenium WebDriver 用于构建一个简单的 API,该 API 可以使用 Selenium Python 绑定编写功能/验收测试。如果您想了解如何直接使用 Selenium Python 打开网页,请查看 Selenium Python 的 get 方法。仅仅能够去到某些地方并没有多大用处。在这里,我们并没有与网页上存在的所有 HTML 元素进行交互,我们需要与页面以及页面内所有的 HTML 元素进行交互。我们可以使用多种策略来查找元素。如果我们想了解更多关于这些策略的信息,可以参考互联网上的相关文章。Selenium WebDriver 提供了各种方法,可用于控制会话,或者换句话说,控制浏览器。Selenium WebDriver 提供了添加 cookie、按返回按钮、在标签页之间导航等功能。 在本文中,我们将讨论 selenium 的 find_element() 方法。Selenium 中的 find_element() 方法为我们解锁了强大的 Web 自动化和交互功能。作为 Selenium WebDriver 中的一个基本功能,find_element() 使开发人员能够精确定位和操作网页中的特定元素。 find_element() 方法简介Selenium 中的 find_element() 策略提供了开启 Web 自动化和交互巨大能力的方法。作为 Selenium WebDriver 中的一个核心功能,find_element() 使开发人员能够精确定位和控制网页中的特定元素。其强大之处在于能够根据不同的策略查找元素,从而精确控制按钮、输入字段、下拉列表等元素。 其核心在于,find_element() 作为访问 Web 元素的入口,为 Selenium 自动连接和控制这些组件提供了一条途径。通过使用一系列查找策略——从 ID、class name、name、XPath,到 CSS selector——开发人员可以精确地识别出复杂现代网页结构中的元素。 语法和用法 Python 的 Selenium 库中 find_element() 的基本语法结构包括指定一个查找方法和一个用于识别元素的**值**。
Selenium 中 find_element() 方法的定位策略按 ID描述:此策略使用元素唯一的 ID 属性查找元素,该属性在 HTML 文档中应该是唯一的。 语法
用例 适用于具有唯一标识符的元素,如登录表单、页眉或页脚区域。 按 Class Name描述:此策略根据元素的 class 属性查找元素,该属性可能应用于页面上的多个元素。 语法
用例 用于查找导航菜单、列表或具有相似样式的项中的元素。 按 Name描述:根据元素的 name 属性查找元素,该属性可能在多个元素之间共享。 语法
用例 用于识别输入字段、表单元素或具有已知名称的组件。 按 XPath描述:使用 XPath 表达式根据元素在 XML 结构中的路径来定位元素。 语法
用例 用于遍历复杂的 DOM 结构,根据不同的属性或条件选择元素。 按 CSS Selector描述:使用 CSS 选择器查找元素,提供了一种根据 CSS 模式来定位元素的简洁方法。 语法
用例 用于根据特定的样式、类或 ID 来选择元素。 按 Tag Name描述:根据元素的 HTML 标签名查找元素。 语法
用例 用于检索特定 HTML 标签的所有实例,例如 ` `、` ` 或 ``。 按 Link Text 和 Partial Link Text描述:根据链接的可见文本或部分文本查找链接。 语法
用例 用于导航到具有已知文本内容的特定链接。 处理不同类型的元素输入字段
按钮
下拉列表/选择框
复选框和单选按钮
if not checkbox.is_selected()
链接
图像元素
文本元素
文件上传元素
Frame 和 Iframe
find_element() 的高级技术处理 Stale Element Reference Exception 描述:Stale Element Reference Exception 发生于,当一个最初在页面上定位的元素,由于页面刷新、更新或交互而变得过时或无效时。 带有重试功能的 Python 代码示例 使用 Actions Chains 进行复杂交互 描述:Actions Chains 允许执行复杂的用户交互,如拖放、组合键和鼠标操作。 用于拖放的 Python 代码示例 管理 Cookies 描述:使用 Selenium 控制浏览器 cookie,例如添加、删除或检索 cookie。 用于删除 cookie 的 Python 代码示例 使用 JavaScript Executor 进行高级操作 描述:在浏览器中直接执行 JavaScript 命令,用于复杂任务或使用 Selenium 本地命令不易实现的操作。 用于滚动的 Python 代码示例 Page Object Model (POM) 用于结构化自动化 描述:实现 Page Object Model 设计模式,以结构化的方式组织和管理 Web 元素及其交互。 使用 Page Object Model (POM) 的 Python 代码示例 实施输出 ![]() 说明 设置环境
启动浏览器会话
处理 Stale Element Reference Exception
执行登录
执行搜索
管理 Cookies 和 JavaScript 执行
使用 Actions Chains 进行复杂交互
实现 Page Object Model (POM)
完成并关闭会话
结论该主题首先设置 Chrome WebDriver 会话并导航到指定的网站。为了处理潜在的 Stale Element Reference Exception,它整合了一个自定义函数 locate_element_safely()。此函数通过重试查找元素来确保元素定位的稳定性和可靠性。然后,它通过使用 find_element() 方法及其特定的 ID 来定位用户名和密码输入字段,从而模拟登录过程。接下来,它通过使用 send_keys() 和 click() 方法与这些元素交互,输入提供的凭据并单击登录按钮。脚本进一步演示了搜索操作,通过查找搜索框、输入提供的产品名称并使用 find_element() 和 send_keys() 启动搜索。 此外,它通过使用 add_cookie() 管理 cookie、通过 execute_script() 执行 JavaScript 进行滚动,以及使用 Actions Chains 模拟复杂交互(如拖放、点击和输入文本)来展示更高级的功能。此外,它通过定义 ProductPage 类来实现 Page Object Model (POM) 设计模式,该类封装了与产品信息提取相关的交互。该类包含一个 get_product_info() 方法,该方法使用类内的 find_element() 根据元素的类来提取产品信息。 下一个主题Python中的内存泄漏 |
我们请求您订阅我们的新闻通讯以获取最新更新。