afellay
afellay

Reputation: 75

How to get xpath of different html values with the same properties

I'm working on Selenium and trying to get the values inside tags. The site that I'm working on is https://www.qnbfinansbank.enpara.com/doviz-kur-bilgileri/doviz-altin-kurlari.aspx. But the properties of the objects are the same. Therefore, the xpath scripts are the same. The values that I'm trying to get are like 5,615505 TL, 4,827450 TL, 187,389825 TL from

<div class="dlCont">
<span>5,615505 TL </span>
</div>

<div class="dlCont">
<span>4,827450 TL </span>
</div>

<div class="dlCont">
<span>187,389825 TL </span>
</div>

and so on. Is there any way to get the xpath of these values?

Upvotes: 1

Views: 62

Answers (3)

Sai
Sai

Reputation: 389

You can manually write the xpath for the below DOM Structure

        <div class="dlCont">
        <span>5,615505 TL </span>
         </div> 

Manually written xpath for above DOM structure is "//div[@class='dlCont']/span".

if the page is having many elements with same DOM struture then written Xpath will match with all the nodes.

There are 8 nodes are matched with XPATH="//div[@class='dlCont']/span" in the  below URL  https://www.qnbfinansbank.enpara.com/doviz-kur-bilgileri/doviz-altin-kurlari.aspx


     if you want to fetch particular webelements then you need to specify the index value as "(//div[@class='dlCont']/span)[2]". 

     you need to add open bracket in the starting of the manually written xpath and close bracket in the ending of the Xpath.after that you need to mention the index value 
    1.//div[@class='dlCont']/span
    2.(//div[@class='dlCont']/span
    3.(//div[@class='dlCont']/span)
    4.(//div[@class='dlCont']/span)[1]

    Hope it will be helpful 

Upvotes: 0

cruisepandey
cruisepandey

Reputation: 29382

You can store all the values in a List. Then one by one you can retrieve it.

Something like :

IList<IWebElement> allValues= driver.FindElements(By.CssSelector("div.dlCont span"));
foreach (IWebElement values in allValues)
{
     Console.WriteLine(values.Text);
}  

Hope this will help.

Upvotes: 1

Ishita Shah
Ishita Shah

Reputation: 4035

You can use like this,

//span[contains(text(),'5,615505 TL')]

Upvotes: 0

Related Questions