zoukankan      html  css  js  c++  java
  • Page Scroll using Selenium WebDriver

    Using JavaScript


    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();


    Using KeyBoard



    We have two options for scrolling in web page.
     
    Using Actions Class

    package name  : org.openqa.selenium.interactions.Actions
     
    java code :
                          Ctrl+End | Scroll to Bottom of the page
                         Actions actions = new Actions(driver);
                         actions.keyDown(Keys.CONTROL).sendKeys(Keys.END).perform();
     
    Without Using Actions Class
     
    java code :

                         for(int i=0;i<10;i++)
                        {
                                 driver.findElement(By.tagName("body")).sendKeys(Keys.DOWN);
                        }
     
  • 相关阅读:
    信息系统项目管理师2020年下半年下午案例分析题及答案
    信息系统项目管理师2019年下半年下午案例分析题及答案
    系统集成项目管理工程师2021年上半年下午案例分析题及答案
    信息系统项目管理师2021年下半年下午案例分析题及答案
    信息系统项目管理师2019年上半年下午案例分析题及答案
    系统集成项目管理工程师2021年下半年下午案例分析题及答案
    信息系统项目管理师2021年上半年下午案例分析题及答案
    深入理解C#笔记(1)
    SqlBulkCopy批量插入数据
    SQL ROW_NUMBER() OVER函数的基本用法用法
  • 原文地址:https://www.cnblogs.com/sozui/p/4805972.html
Copyright © 2011-2022 走看看