Selenium Python 中的显式等待

2024 年 10 月 6 日 | 阅读 3 分钟

自动化测试和网络抓取已成为编程改进的必要条件。 Selenium 是一种众所周知的自动化工具,它让分析师和设计师能够自动与 Web 应用程序进行交互。 其关键亮点之一是显式等待,这是一个强大的组件,用于保证您的自动化脚本在 Web 元素处于理想状态时与其连接。 在本文中,我们将深入探讨使用 Python 的 Selenium 中的显式等待,调查其重要性并通过功能代码模型展示其使用。

显式等待的意义

Web 应用程序是动态的,网页上的元素可能需要一些时间才能加载或变得互动。 对于有效的自动化脚本,将您的活动与网页的状况同步至关重要。 这就是显式等待成为关键因素的地方。 与隐式等待(普遍适用且可能导致过度等待时间)相反,显式等待针对显式元素,并允许您定义脚本应继续进行的条件。

编码

显式等待的示例

现在,让我们调查三个功能场景,其中显式等待可以提高您的 Selenium 脚本的可靠性。

模型 1:等待元素互动

您需要在网页上单击“提交”按钮。 由于组织延迟或 JavaScript 执行,该按钮在页面加载后不会立即互动。 在这种情况下,您可以使用显式等待来保证该按钮已准备好进行关联。

编码

模型 2:等待元素变得可见

偶尔,您需要与在特定活动或活力之后变得可见的元素进行交互。 为了处理这种情况,您可以使用显式等待来等待元素的可见性。

编码

模型 3:等待文本出现

有时,您可能需要在继续自动化之前确认特定文本出现在网页上。 显式等待可以帮助您保证普通文本的存在。

编码

程序

编码

输出

[ChromeDriver 99.0.4844.51 (66241339353208b6d092eafb8b3c207ef8bfe26a-refs/branch-heads/4844@{#1967}) on port 9515]
Starting Chrome...
Chrome is running.
Navigating to 'https://webpage.com'...
The button is clickable. Clicking...
[Additional actions after clicking the button, if any]
The browser window closed.

不使用 time.sleep()

虽然使用 time.sleep() 进行等待很诱人,但在自动化中被认为是一种糟糕的做法。 显式等待更有效,因为它们允许您的脚本在满足理想条件时继续进行,而不是等待适当的延迟时间。

结论

显式等待是您 Selenium 工具包中的一个关键工具,用于 Python 中强大的 Web 自动化。 它们使您能够将您的自动化脚本与 Web 应用程序的动态行为同步,保证您与 Web 元素的交互在正确的环境下出色地发生。 您可以通过使用显式等待来创建可靠且有效的自动化脚本,这些脚本可以完美地导航和连接到网页。


下一个主题Selenium C# 教程