在 Selenium Python 中定位单个元素2024 年 10 月 6 日 | 阅读时间:6 分钟 Selenium 是一个用于 Web 自动化功能的强大工具,它提供了一个 Python 模块,改进了自动化 Web 任务的最常见方法。 无论您是尝试 Web 应用程序还是自动化冗余的 Web 通信,Selenium 的 Python 关联都提供了一个强大且易于使用的编程接口。 在本系列的两部分文章中,我们将探讨在 Selenium Python 中查找单个元素的基本思想。 定位单个元素Selenium Python 遵循不同的定位器策略来查找网页上的元素。 无论如何,您需要从 Selenium 的 web driver.common.by 模块导入 By 类。 from selenium.webdriver.common.by import By Selenium Python 使用八种基本的定位器策略来查找单个元素 By.ID此策略查找具有与预定值匹配的 ID 质量的主要元素。 如果未找到匹配元素,则会引发 NoSuchElementException。 要使用 By.ID 查找注册表单并与之交互,您可以使用以下 Python 代码 PythonBy.XPATH此策略使用 XPath 实例查找主要元素。 如果未找到匹配元素,则会引发 NoSuchElementException。 PythonBy.NAME它查找具有与提供的估值匹配的名称属性的主要元素。 与 ID 一样,如果未找到匹配项,则会引发 NoSuchElementException。 您可以使用 By.NAME 查找搜索表单并与之交互 Python By.TAG_NAME它查找具有预定 HTML 标签名称的主要元素。 如果未找到匹配元素,则会引发 NoSuchElementException。 您可以使用 By.TAG_NAME 查找标题并与之关联 Python By.LINK_TEXT它查找具有与提供的估值完全匹配的接口文本的主要元素。 如果未找到匹配的连接文本,则会引发 NoSuchElementException。 By.PARTIAL_LINK_TEXT此策略跟踪具有与提供的估值匹配的部分连接文本的主要元素。 如果未找到匹配项,则会引发 NoSuchElementException。 您可以使用 By.LINK_TEXT 和 By.PARTIAL_LINK_TEXT 查找并与这些连接交互 PythonBy.CLASS_NAME此策略查找具有匹配的类特征名称的主要元素。 如果未找到匹配项,则会引发 NoSuchElementException。 您可以使用 By.CLASS_NAME 查找并与“重要”消息交互 PythonBy.CSS_SELECTOR它使用匹配的 CSS 选择器查找主要元素。 如果未找到匹配元素,则会引发 NoSuchElementException。 您可以使用 By.CSS_SELECTOR 查找并连接样式部分 Python实际示例示例 1按 ID 定位元素 假设您正在自动化一个网站上的登录交互,该网站具有以下 HTML 结构 要使用 By.ID 查找并与用户名输入字段交互,您可以使用以下 Python 代码 Python示例 2按 XPATH 定位元素 假设您有一个网页,其中包含各种输出元素,并且您需要使用 XPath 表达式查找主要输出。 这就是您可以做到这一点的方式 使用以下 Python 代码查找主要输出元素 Python示例 3按部分连接文本定位链接 假设您需要在具有以下结构的网页上单击文本为“继续”的连接 您可以使用 By.PARTIAL_LINK_TEXT 查找并点击连接 Python最佳实践1. 关注 ID 和名称定位器 在可能的情况下,使用 By.ID 或 By.NAME 定位器,因为它们是定位元素的最快、最可靠的策略。 这些定位器非常适合识别页面上的特殊元素。 2. 使用 CSS 选择器实现适应性 By.CSS_SELECTOR 提供了在选择元素方面的适应性,这要归功于不同的特征和条件。 这是一个强大的定位器策略,特别是当您想通过类、属性或与其他元素的关联来跟踪元素时。 3. 避免过度使用 XPath 虽然 XPath 具有适应性,但它可能比其他定位器策略慢且更有意义。 保留 XPath 用于其他策略不足的复杂情况。 4. 使用等待处理动态内容 网页经常包含异步加载的动态内容。 利用明确的等待(WebDriverWait)来保证元素在对其执行操作之前就已可用并准备好进行关联。 5. 保持您的代码可行 构建您的代码,使其有效。 在 Web 页面结构开发时,将定位器存储在因素或常量中以统一更改。 6. 使用打印语句进行调试 在调查元素区域的问题时,将打印语句添加到您的代码中,以查看每一步发生了什么。 这可能有助于进行调试。 结论Selenium 及其 Python 使我们能够与 Web 元素进行通信,从而有效地实现任务自动化和测试 Web 应用程序。 这些策略是 Selenium Python 工具包中的基本工具,允许您查明和控制网页上的单个元素。 下一个主题Selenium C# 教程 |
我们请求您订阅我们的新闻通讯以获取最新更新。