Otto Rahn
Otto Rahn

Reputation: 173

How to get dynamic numbers using xpath?

How do I get dynamically changing numbers in the span block ?

<div class="main-page-exchange__indicator">
   <span class="main-page-exchange__rate">72,54</span></div>
</div>

Method:

@Test
public void first(){
    chromeDriver.get("https://www.open.ru/");
    WebElement buyRateUSD = chromeDriver.findElement(By.xpath("//span[@class='main-page-exchange__rate']"));
    System.out.println("out" + buyRateUSD);
}

I can't figure out how to do this. My method xpatch which returns the value:

"out[[ChromeDriver: chrome on WINDOWS (7ec6711c86cc8089e3bd06c161cdebf8)] -> xpath: //span[@class='main-page-exchange__rate']]" 

How can I get dynamically changing numbers in such blocks for further comparison?

Upvotes: 0

Views: 316

Answers (2)

PDHide
PDHide

Reputation: 19929

chromeDriver.get("https://www.open.ru/");
WebElement buyRateUSD = chromeDriver.findElement(By.xpath("//span[@class='main-page-exchange__rate']"));
System.out.println("out" + buyRateUSD.getText());

byRaetUSD is a webelement you should call getText to get the text or you can call

  buyRateUSD.getAttribute("textContent") 

if element is not in the view port as getText finds inner test and will give consideration to isdisplayed . if isdisplayed is falls getText will return empty string. getAttribute("textContent") doesn't care about isDisplayed so it will return text if element is present

Upvotes: 1

Yogesh_D
Yogesh_D

Reputation: 18764

Your code returns values of the Type WebElement

To get the text in that you need to use buyRateUSD.getText() this should give you the text as a String and you can parse it further to use it.

Upvotes: 1

Related Questions