Hi,
We can use selenium to Extract the Stock price or Bit coin conversion rate using Selenium
Key thing to note here is that
1.) The data will be continuous changing
2.)We need to keep the script running, so that it can scrape the data continuously without any miss
Sample Website
https://preev.com/
Before automating we need to observe and find out WebElement which gets updated whenever there is change
in my case that WebElement is available with Xpath ".//*[@id='numField']" here the attribute named "style" gets updated whenever there is Price Change
So we will use FluentWait of Selenium to continuously pool
Sample Code
We can use selenium to Extract the Stock price or Bit coin conversion rate using Selenium
Key thing to note here is that
1.) The data will be continuous changing
2.)We need to keep the script running, so that it can scrape the data continuously without any miss
Sample Website
https://preev.com/
Before automating we need to observe and find out WebElement which gets updated whenever there is change
in my case that WebElement is available with Xpath ".//*[@id='numField']" here the attribute named "style" gets updated whenever there is Price Change
So we will use FluentWait of Selenium to continuously pool
Sample Code
package com.neeraj.test.neeraj;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.FluentWait;
import org.testng.annotations.Test;
import com.google.common.base.Function;
public class testclass {
WebDriver driver=new FirefoxDriver();
public WebElement fluentWait(final By locator) {
//System.out.println("In Fluent Wait");
FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(60, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.MICROSECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
});
return foo;
};
@Test
public void BitCoinConverter(){
driver.get("https://preev.com");
boolean flag=false;
String oldPrice="";
String newPrice="";
while(flag==false){
oldPrice=driver.getTitle();
WebElement element = fluentWait(By.xpath(".//*[@id='numField']"));
String enabled = element.getAttribute("style");
if(enabled.contains("0.5")) { // if there is change in price we get change in style attribute as 0.5
newPrice=driver.getTitle();
if(oldPrice.equals(newPrice)){
System.out.println("no change");
}
else{
System.out.println("Change is there and new price is-->"+newPrice);
}
}
}
}
}
No comments:
Post a Comment