HTML
<li class="wdappchrome-ai" data-automation-id="searchInputAutoCompleteResult" tabindex="-2" aria-posinset="1" aria-setsize="3">
<span data-automation-id="searchInputAutoCompleteResultFullText">
<span style="font-weight:500">
<span data-automation-id="searchInputAutoCompleteResultToken" style="font-weight:400">mike</span>
<span data-automation-id="searchInputAutoCompleteResultToken" style="font-weight:400">diana</span>
</span>
</span>
</li>
我将用户全名划分为spans
,因此我想构建xpath,它返回单个list
的两个/多个跨度的组合文本。
现在我使用2个或更多xpath,基于用户名分为span。
我使用://li[.//span[text()='mike']]
//li[.//span[text()='diana']]
然后我在xpath之上执行gettext()
并使用Java语法合并。所以我正在寻找能够提供上述特定span
标记内所有li
全文的解决方案。
答案 0 :(得分:1)
尝试使用以下XPath来匹配元素的一个跨度:
//li[.//span='diana' or .//span='mike']
或两个跨度:
//li[.//span='diana' and .//span='mike']
答案 1 :(得分:0)
要在一行中获取特定li标签内所有范围的全文,您可以使用以下代码块:
ArrayList<String> nameList = new ArrayList<String>();
List<WebElement> firstName_lastname = driver.findElements(By.xpath("//li[@class='wdappchrome-ai']//span[@data-automation-id='searchInputAutoCompleteResultToken']"));
for (WebElement fN_lN:firstName_lastname)
nameList.add(fN_lN.getAttribute("innerHTML"));
System.out.println(nameList);