给定xpath有多个匹配时如何使用xpath?

时间:2015-11-24 18:59:15

标签: selenium xpath selenium-webdriver webdriver

我有多个匹配的xpath://button[contains(.,'View Details')]。如何找到View Details的第一个实例或特定实例?

<div class="ma-center-button">
    <button class="button button--secondary ma-center-button--block" data-ui-sref="myAccount.billing.recent-charges" href="/my-account/billing/recent-charges">View Details</button>
</div>

4 个答案:

答案 0 :(得分:2)

如果您需要第一个,请假设您使用的是Java,findElement()

driver.findElement(By.xpath("//button[contains(.,'View Details')]"));

当然还有其他方法可以找到按钮,但是,根据您提供的内容,如何查看hrefrecent-charges结尾:

driver.findElement(By.cssSelector("button[href$=recent-charges]"));

答案 1 :(得分:0)

将[1]附加到Xpath表达式以获取序列中的第一个项目。

答案 2 :(得分:0)

driver.FindElement(By.XPath("//button[contains(.,'View Details')][1]")).Click();

答案 3 :(得分:0)

我已经回答How to use xpath in Different way ?

您可以像这样使用xpath:

(//button[contains(.,'View Details')])[1]

在这里你可以传递2,3,..而不是1.