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);
                        }
     
  • 相关阅读:
    [Linux 流量管理] Cacti的插件安装和使用
    expdp impdp 数据库导入导出命令详解
    Dropping all user tables/sequences in Oracle
    Oracle RMAN 的 show,list,crosscheck,delete命令整理
    EXP00041错误,遇到字符集问题的解决方式
    ORA00312的解决方法
    如何禁止MSN传递文件
    如何解决Parallel query大于1的问题
    bzoj5028小Z的加油店(线段树+差分)
    [转]C# 互操作性入门系列(三):平台调用中的数据封送处理
  • 原文地址:https://www.cnblogs.com/sozui/p/4805972.html
Copyright © 2011-2022 走看看