28 November, 2014

How to perform Scroll operation in Selenium-Webdriver

Scroll Down:

 import org.openqa.selenium.JavascriptExecutor;   
 WebDriver driver = new FirefoxDriver();  
 JavascriptExecutor jse = (JavascriptExecutor)driver;  
 jse.executeScript("scroll(0, 250)"); //y value '250' can be altered  

-------------------------------------------------------------------------------------------------
Scroll up:


 JavascriptExecutor jse = (JavascriptExecutor)driver;  
 jse.executeScript("scroll(250, 0)"); //x value '250' can be altered  

----------------------------------------------------------------------------------------------------
Scroll bottom of the Page:


 JavascriptExecutor jse = (JavascriptExecutor)driver;  
 jse.executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight,document.body.scrollHeight,document.documentElement.clientHeight));");  
 (or)  
 Actions actions = new Actions(driver);  
 actions.keyDown(Keys.CONTROL).sendKeys(Keys.END).perform();  

-----------------------------------------------------------------------------------------------------
Full scroll to bottom in slow motion:

 for (int second = 0;; second++)   
  {  
     if(second >=60)  
     {  
       break;  
     }  
  ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,400)", ""); //y value '400' can be altered  
  Thread.sleep(3000);  
  }  
 (or)  
  JavascriptExecutor jse = (JavascriptExecutor)driver;  
  for (int second = 0;; second++)  
     {  
        if(second >=60)  
         {  
       break;  
         }  
       jse.executeScript("window.scrollBy(0,800)", ""); //y value '800' can be altered  
       Thread.sleep(3000);  
     }  

----------------------------------------------------------------------------------------------------------------------
Scroll automatically to your WebElement:

 

 Point hoverItem =driver.findElement(By.xpath("Value")).getLocation();  
 ((JavascriptExecutor)driver).executeScript("return window.title;");    
 Thread.sleep(6000);  
 ((JavascriptExecutor)driver).executeScript("window.scrollBy(0,"+(hoverItem.getY())+");");  
 // Adjust your page view by making changes right over here (hoverItem.getY()-400)  
 (or)  
 ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("Value')]")));  
 (or)  
 WebElement element = driver.findElement(By.xpath("Value"));  
 Coordinates coordinate = ((Locatable)element).getCoordinates();  
 coordinate.onPage();  
 coordinate.inViewPort();  

No comments:

Post a Comment