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

                    }

 

时间: 2024-10-10 11:32:25

Page Scroll using Selenium WebDriver的相关文章

Page Object Model | POM (Selenium Webdriver For Python)

研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数调用,到重定义函数.从变量驱动,到数据驱动,再到关键字驱动,一步一步的默默走向自动化框架的构建.虽然还有没有投入使用,只是写几个demo,就慢慢的发现了 selenium自动用例脚本,相似功能地方,代码基本都是一样的,界面元素换个查找方式,把原来的使用 xpath方式,改为使用 id 查找,需要对每个用例脚本都要改

Selenium - WebDriver: Page Objects

This chapter is a tutorial introduction to page objects design pattern. A page object represents an area in the web application user interface that your test is interacting. Benefits of using page object pattern: Creating reusable code that can be sh

解决Ruby在IE11中报Unable to get browser (Selenium::WebDriver::Error::NoSuchWindowError)的错误

转载地址:http://www.tuicool.com/articles/BRnqeu2 I was updating the browser WebDrivers for    Seleno    when I hit an issue with the InternetExplorerDriver. I was running Selenium WebDriver 2.43.1 on Windows 8.1 and using Internet Explorer 11. The test w

selenium WebDriver 截取网站的验证码

在做爬虫项目的时候,有时候会遇到验证码的问题,由于某些网站的验证码是动态生成的,即使是同一个链接,在不同的时间访问可能产生不同的验证码, 一 刚开始的思路就是打开这个验证码的链接,然后通过java代码get请求保存验证码图片到本地,然后用打码工具解析验证码,将验证码自动输入验证框就 可以把验证码的问题解决了,但是问题来,每次的请求同一个地址,产生的验证码图片是不一样的,所以这种方法行不通.所以只能将图片先用selenium  WebDriver 截取到本地,然后用打码工具解析ok ,自动填写验证

python selenium webdriver处理浏览器滚动条

用键盘右下角的UP,DOWN按键来处理页面滚动条 这种方法很灵活用起来很方便!!!! from selenium import webdriver import time from selenium.webdriver.common.keys import Keys #访问百度 driver=webdriver.Chrome() driver.get("http://www.baidu.com") #搜索 driver.find_element_by_id("kw"

Selenium WebDriver 之 PageObjects 模式 by Example

目录 1. 项目配置 2. 一个WebDriver简单例子 3. 使用Page Objects模式 4. 总结 5. Troubleshooting 6. 参考文档 本篇文章通过例子来阐述一下Selenium2.0 WebDriver 之 Page Objects模式. 项目配置 maven 3, pom.xml配置如下 <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>s

selenium webdriver学习(一)------------快速开始(转载JARVI)

selenium webdriver学习(一)------------快速开始 博客分类: Selenium-webdriver selenium webdriver 学习 selenium webdriver学习历程(一)------------快速开始 学习selenium已经两年了,从1.X到2.X,一直在关注它.中间由于工作原因中断了一段时间,但是一直无法割舍,最近又去官网看了一下,更新还挺快的.selenium1.X的时代将被取代,selenium-webdriver的大航海时代开始了

Selenium Webdriver 自动化测试开发常见问题(C#版)

转一篇文章,有修改,出处http://www.7dtest.com/site/blog-2880-203.html 1:Selenium中对浏览器的操作 首先生成一个Web对象 IWebDriver driver = new FirefoxDriver(); //打开指定的URL地址 driver.Navigate().GoToUrl(@"http://12.99.102.196:9080/corporbank/logon_pro.html"); //关闭浏览器 Driver.quit

selenium webdriver (python)大全

webdriver的简介 硒2.0的主要新功能是集成的webdriver的API.webdriver的设计除了解决一些seleniumr-RC API的一些限制,与webdriver 的整合,将提供一个更简单,更简洁的编程接口.selenium webdriver会更好地支持动态的网页,页面本身被重新加载页面元素可能更改.webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持现代先进的web-app测试. WebDriver与Selenium-RC相比,是如何来驱动浏览器