首页  >  文章  >  后端开发  >  如何使用 Selenium WebDriver (Python) 定位具有特定文本的元素?

如何使用 Selenium WebDriver (Python) 定位具有特定文本的元素?

Patricia Arquette
Patricia Arquette原创
2024-10-28 14:45:30620浏览

How to Locate Elements with Specific Text Using Selenium WebDriver (Python)?

在 Selenium WebDriver (Python) 中定位具有特定文本的元素

在 Selenium WebDriver 中根据文本内容识别元素可能是一项具有挑战性的任务。以下是查找包含特定文本的元素的步骤:

使用 contains(text(), "text") XPath

最直接的方法是使用XPath 表达式中的 contains() 函数。此函数允许您查找文本内容与指定字符串部分匹配的元素。但是,默认行为区分大小写。

要解决不区分大小写的问题,请将 //* 前缀添加到 XPath 表达式:

<code class="python">driver.find_elements_by_xpath("//*[contains(text(), 'My Button')]")</code>

此表达式将查找包含在其文本内容中的任意位置添加文本“My Button”(不区分大小写)。

迭代并检查 Element.text

另一个选项是迭代上的所有元素页面并检查 element.text 属性。然而,这种方法的计算成本很高,而且可能很慢,尤其是对于大型网页。

识别嵌套元素

为了避免选择文本内容重叠的嵌套元素,您可以需要确定一个元素是否是包含相同文本的另一个元素的子元素。这可以通过使用 is_displayed() 和 find_element_by_xpath() 方法来实现:

<code class="python">outer_element = driver.find_element_by_css_selector("div.outer")
if outer_element.is_displayed():
    inner_element = outer_element.find_element_by_xpath("./div[text()='My Button']")</code>

此代码检查外部元素是否可见,然后使用 XPath 表达式通过以下方式查找其正下方的内部元素:具体文字。

以上是如何使用 Selenium WebDriver (Python) 定位具有特定文本的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

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