首页  >  文章  >  后端开发  >  如何从 Selenium WebDriver 中动态变化的 HTML 元素中检索文本?

如何从 Selenium WebDriver 中动态变化的 HTML 元素中检索文本?

Linda Hamilton
Linda Hamilton原创
2024-11-03 04:36:03969浏览

How to Retrieve Text from Dynamically Changing HTML Elements in Selenium WebDriver?

在 Python 中使用 Selenium WebDriver 访问文本元素

在使用 Selenium WebDriver 的 Web 自动化中,从 HTML 元素中检索文本内容至关重要。但是,当元素的 ID 在页面重新加载时动态更改时,可能会出现问题,如所示的情况。

原始代码

提供的原始代码:

text = driver.find_element_by_class_name("current-stage").getText("my text")

尝试通过类名“current-stage”定位元素并提取其文本,该文本预计为“我的文本”。

HTML 结构

提供的 HTML 结构显示了类名为“current-text”和动态 ID 的文本元素,如下所示:

<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>

问题

原始代码的问题与 XPath 无关,而是与 getText 方法的误用有关。将参数传递给 getText 尝试设置元素的文本,而不是检索它。

正确的方法

从元素中提取文本的正确方法是使用不带任何参数的 getText,如下所示:

text = driver.find_element_by_class_name("current-stage").getText()

此代码将检索元素的文本内容并将其存储在文本变量中。

验证结果

您可以使用assertEqual 方法来验证检索到的文本,而不是将预期的文本传递给 getText 方法,如下所示:

expected_text = "my text"
actual_text = driver.find_element_by_class_name("current-stage").getText()
self.assertEqual(expected_text, actual_text)

此方法可确保检索到的文本符合预期值。

以上是如何从 Selenium WebDriver 中动态变化的 HTML 元素中检索文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn