为元素创建XPATH - Selenium

时间:2015-06-30 17:37:05

标签: java selenium xpath

任何人都可以帮助我为下面的HTML派生xpath。我是硒的新手。

我需要为每个跨度获得卢比,但问题是元素具有相同的类名。如何创建唯一的xpath来查找元素

<div class="pu-price">
<div class="pu-border-top">
<div class="pu-final">
<span class="fk-font-17 fk-bold">Rs. 5,557</span>
</div>
<div class="pu-emi fk-font-12">EMI from Rs. 270 </div>

<div class="pu-price">
<div class="pu-border-top">
<div class="pu-final">
<span class="fk-font-17 fk-bold">Rs. 9,997</span>
</div>
<div class="pu-emi fk-font-12">EMI from Rs. 500 </div>

2 个答案:

答案 0 :(得分:2)

我的建议是使用更通用的xpath来获取包含span的所有元素,例如: XPath的:     的&#34; // DIV [@class =&#39; PU-最终&#39;] /&#34; 或者如果你想更具体: XPath的:      的 // DIV [@class =&#39; PU-最终&#39;并包含(。,&#39; Rs&#39;)] 这将带来包含Rs的页面中的所有元素,你可以将它们放在一些列表中:

public static List<WebElement> getElements(String selector) {
        By locator = By.xpath(selector);
        List<WebElement> webElements = driver.findElements(locator);
        return webElements;
    }

然后你可以做你想要的任何你想做的事。

答案 1 :(得分:2)

您可以使用

(//div[@class = 'pu-final']/span)[1]

获得第一个,

(//div[@class = 'pu-final']/span)[2]

第二个。这可能是关于计算所选节点的意思。