如何使用xpath定位单个标记下的多个属性/标记

问题描述 投票:1回答:2

请参考以下示例代码:

<div class="menu"> 
    <a href="one.html">One</a>
    <a href="two.html">Two</a>
    <button type="button">Three</button>
    <button type="button">Four</button>
        <div class="menu2">
            <a href="five.html">Five</a>
            <a href="six.html">Six</a>  
        </div>
        <div class="menu3">
            <a href="seven.html">Seven</a>
            <button type="button">Eight</button>
        </div>
</div>

我试图使用单个xpath找到'a'标签和'button'标签。

我可以使用cssSelector和以下代码来做到这一点:

List<WebElement> list = d.findElements(By.cssSelector("div[class='menu'] a, div[class='menu'] button"));

for (WebElement l: list) {
System.out.println(l.getText());
}

但我想用xpath做。

java selenium xpath selenium-webdriver
2个回答
1
投票

尝试在XPath下面使用以匹配abutton

//div[@class="menu"]//*[name()=("a" or "button")]

要么

//div[@class="menu"]//*[self::a or self::button]

0
投票

你也可以使用Jsoup来获取所有数据。这里有一些例子:

Document doc = Jsoup.parse(content);
Elements elements = doc.select("div.menu a");
for (Element element : elements) {
  String url = element.attr("href");
}
© www.soinside.com 2019 - 2024. All rights reserved.