Java&Selenium控制滚动条方法封装

package util;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; public class ScrollBarUtil {
/**
* 控制滚动条向下拉到底
* @param driver 浏览器驱动
*/
public static void toBottom(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//向下拉到底//
js.executeScript("document.documentElement.scrollTop=10000");
} /**
* 控制滚动条向上拉到顶
* @param driver 浏览器驱动
*/
public static void toTop(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//向上拉到顶
js.executeScript("document.documentElement.scrollTop=0");
} /**
* 控制滚动条向下拉到底
* @param driver 浏览器驱动
*/
public static void scrolltoBottom(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//向下拉到底
js.executeScript("window.scrollTo(0,100000)");
} /**
* 控制滚动条向上拉到顶
* @param driver 浏览器驱动
*/
public static void scrolltoTop(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//向上拉到顶
js.executeScript("window.scrollTo(0,1)");
} /**
* 控制滚动条拉到中间
* @param driver 浏览器驱动
*/
public static void verticaltoMiddle(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//上下拉到中间
js.executeScript("window.scrollBy(0, 0-document.body.scrollHeight *1/2)");
} /**
* 控制水平滚动条左右拉到中间
* @param driver 浏览器驱动
*/
public static void horizontaltoMiddle(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//左右拉到中间
js.executeScript("window.scrollBy(0, 0-document.body.scrollWidht *1/2)");
} /**
* 控制滚动条拉到元素可见
* @param driver 浏览器驱动
* @param element 页面元素定位
*/
public static void scrolltoPresence(WebDriver driver, WebElement element) {
JavascriptExecutor js = (JavascriptExecutor) driver;
//移动到元素element对象的“顶端”与当前窗口的“顶部”对齐
//js.executeScript("arguments[0].scrollIntoView();", element);
js.executeScript("arguments[0].scrollIntoView(true);", element);
//移动到元素element对象的“底端”与当前窗口的“底部”对齐
//js.executeScript("arguments[0].scrollIntoView(false);", element);
} /**
* 使用JavaScript的ScrollTo函数和document.body.scrollHeight参数
* 将页面滚动到最下方
* @param driver 浏览器驱动
*/
public static void scrollingToBottomofPage(WebDriver driver){
((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
try{
Thread.sleep(3000);
}catch (InterruptedException e){
e.printStackTrace();
}
} /**
* 使用JavaScript的ScrollTo函数,使用0和800的横纵坐标参数
* 将页面的滚动条纵向下滑800个像素
* @param driver 浏览器驱动
*/
public static void scrollingByCoordinateofPage(WebDriver driver){ ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,200)");
try{
Thread.sleep(3000);
}catch (InterruptedException e){
e.printStackTrace();
}
}
}

最新文章

  1. unity小地图技术方案总结
  2. Jekyll 安装权限问题 ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/jekyll
  3. 关于java中接口定义常量和类定义常量的区别
  4. 修改 TeamViewer ID方法
  5. hadoop2.6---常用命令
  6. 元素JS拖动的实现
  7. 关于创建可执行的jar文件(assembly)
  8. 觉得VR头显太笨重?轻便的VR“神器”来了
  9. java8 Lambda表达式的新手上车指南(1)
  10. Java对【JSON数据的解析】--Gson解析法
  11. AOP in dotnet :AspectCore的参数拦截支持
  12. 【Beta】 第二次Daily Scrum Meeting
  13. Java并发编程(五)锁的使用(下)
  14. [Swift]LeetCode166. 分数到小数 | Fraction to Recurring Decimal
  15. JAVA中接口与抽象类
  16. 树莓派集群实践——nfs
  17. python enumerate用法总结【转】
  18. 【文件readonly异常】异常退出编译文件,再次进入提示readonly
  19. cv::circle《转》
  20. const 指针

热门文章

  1. 【数据库开发】windows环境下通过c++使用redis
  2. Mysql统计每年每个月的数据——详细教程
  3. csu 1770: 按钮控制彩灯实验
  4. Seq2Seq模型与注意力机制
  5. docker安装详细步骤-centos7
  6. Java中的静态导入
  7. LC 144. / 94. / 145. Binary Tree Preorder/ Inorder/ PostOrder Traversal
  8. 使用redis和thread告警并避免重复告警
  9. linux-删除一个目录下的所有文件,但保留某个或者多个指定文件
  10. react以组件为中心的代码分割和懒加载