Selenium XPath 合并跨越文本并查找包含子字符串的元素
Posted
技术标签:
【中文标题】Selenium XPath 合并跨越文本并查找包含子字符串的元素【英文标题】:Selenium XPath merge spans text and find element that contains substring 【发布时间】:2021-12-17 06:30:37 【问题描述】:我在创建 Selenium 查询以使用 XPath 从列表中选择特定元素时遇到问题。
我试过//li[contains(text(), 'Addressing machine wholesaling')]
,但似乎我需要以某种方式合并内部跨度。有没有办法做到这一点?
这里是列表的例子。在这种情况下,我需要选择第一个 li
元素。
<ul aria-labelledby="businessActivitySuggestionsProbableHeader1" class="anzsicList probable">
<li activity="55" index="0" role="option" class="">
<span class="matchText">Addressing</span>
<span class="matchText">machine</span>
<span class="matchText">wholesaling</span>
</li>
<li activity="4554" index="1" role="option" class="">
<span class="matchText">Machine</span> manufacturing (including accounting,
<span class="matchText">addressing</span>, business, enveloping, letter folding, numbering, photocopying or duplicating)
</li>
</ul>
如果不可能,也许还有其他方法可以做到这一点,而不是使用 XPath?
【问题讨论】:
【参考方案1】:这个 XPath,
//li[normalize-space() = 'Addressing machine wholesaling']
将根据要求选择您的第一个 li
元素。
另见
Testing text() nodes vs string values in XPath How to use XPath contains() for specific text?【讨论】:
以上是关于Selenium XPath 合并跨越文本并查找包含子字符串的元素的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Selenium xpath 查找包含“下载”一词的所有元素?
在 Selenium 测试中使用 XPath 通过文本获取 WebElement