在我的浏览器上,我有一些元素彼此共享相同的类,比如
<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
元素可能更容易、更健壮