任何人都可以帮助我为下面的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>
答案 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]
第二个。这可能是关于计算所选节点的意思。