在 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中文网其他相关文章!