使用getByXPath查找具有重叠类的元素



在我的浏览器上,我有一些元素彼此共享相同的类,比如

<span class="a8Pemb OFFNJ Jz5Gae">...</span>

<span class="a8Pemb OFFNJ">...</span>

然而,当我使用page.getByXPath("//span[@class='a8Pemb OFFNJ']");时,它只返回具有完全相同类名的第二个元素。我想把它们都按顺序排列,这意味着我不想为第一个元素调用单独的查询。我该怎么做?

请注意,XPath表达式//span[@class='a8Pemb OFFNJ']只会返回span元素,其class属性实际上与字符串'a8Pemb OFFNJ'完全相等,而字符串值'a8Pemb OFFNJ Jz5Gae'不相等。

我相信您仅限于HTMLUnit中的XPath版本1,所以您不容易将class属性标记为一个可以进行比较的单独标记列表。您可以生成一个更复杂的XPath表达式,该表达式使用XPathcontains()函数来检查class属性是否包含您想要的每个类,但使用querySelectorAll方法和类似span.a8Pemb.OFFNJ的CSS选择器,通过CSS选择器检索span元素可能更容易、更健壮

相关内容

  • 没有找到相关文章

最新更新