2015-06-30 3 views
1

Может ли кто-нибудь помочь мне получить xpath для ниже HTML. Я новичок в селене.Создание XPATH для элемента - Selenium

Мне нужно получить рупии для каждого диапазона, но проблема заключается в том, что оба элемента имеют одинаковые имена классов. Как создать уникальный 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> 
+1

Что вы пробовали? И если я правильно помню «XPath», вы можете просто подсчитывать одни и те же объекты. – bish

+0

Я сработал, чтобы получить первую цену wd.findElement (By.xpath ("// div [@ class = 'pu-final']/span [1]")). GetText(). Replace ("Rs.", ""); как я могу подсчитать объекты? –

ответ

2

мое предложение заключается в использовании XPath, которое более общим, чтобы получить все элементы, которые содержат свой срок, например: XPath: «// DIV [ @ класс = 'пу-финал'] /» или, если и хотят быть более конкретными: : XPath // ДИВ [@ класс = 'пу-финал' и содержит (., 'Rs')] это приведет к тому, что все элементы на странице, содержащей Rs и u, могут помещать их в список:

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

тогда вы можете делать все, что захотите, в списке у вас есть.

+0

Спасибо, и вы могли бы поделиться им, если у вас есть какой-либо учебник о методе деривации XPATH –

+0

, лучший способ, который я использую, в браузере: открыть консоль и ввести $ x ("") между ними, введите xpath, и вы сможете увидеть результаты , я не люблю использовать аддоны –

+0

@JhonsamuelSamuel http://zvon.org/comp/r/tut-XPath_1.html – SiKing

2

Вы можете использовать

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

, чтобы получить первый и

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

для второго. Вероятно, это то, что означало бишь для подсчета выбранных узлов.

+0

Да, вот что я имею в виду :) Спасибо за пример! – bish