本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学

一:使用键盘对象操作滚动条

//导包

import org.openqa.selenium.interactions.Actions;

// 创建鼠标键盘操作对象
Actions actions = new Actions(driver); // -----------driver:是创建浏览器对象的变量(WebDriver driver=new ChromeDriver();) //通过xpath获取到滚动条所在元素位置
WebElement A = driver.findElement(By.xpath("xpath_str")); //循环点击键盘下键,直到元素可见
while(true) {
actions.sendKeys(A, Keys.DOWN).perform(); /* A:滚动条所在元素位置 * Keys.DOWN:点击键盘下键 * perform():确定键盘操作事件,不能省略 */ // 使用try…catch…来判断元素是否可见,可见就进行元素操作并退出循环
try {
driver.findElement(By.xpath("Startprocess")).click();
break;
} catch (Exception e) {
}
}

以上方式就会让滚动条不停的滑动,并直到元素可见。进行元素的操作

二:通过JS来操作页面滚动条

使用scrollTop进行垂直方向滚动到最底部

//导包
import org.openqa.selenium.JavascriptExecutor; // 创建js对象
JavascriptExecutor js = (JavascriptExecutor) driver; // 使用executeScript方法执行js语句
js.executeScript("document.evaluate(\"xpath_str\", document).iterateNext().scrollTop=1000"); /*
* document.evaluate是针对使用xpath定位的方法
* document.evaluate(\"xpath_str\", document).iterateNext():获取到滚动条元素位置,xpath内含有双引号记得转义
* scrollTop:将垂直滚动条高度设置为1000,意思就是滚动到底部
*/

如果既想要水平方向滑动,也想要垂直方向滑动。则使用scrollTo(x,y)

x:表示水平方向的像素值(最左边为0,)

y:表示垂直方向的像素值(最上边为0)

例:向右100,向下200-------------scrollTo(100,200)

水平方向滑动:使用scrollLeft(默认最左边为0)

例:向右滑动100----------scrollLeft=100

注意:上述JS操作滚动条是使用xpath定位的方式,如果需要使用其他的元素可使用下述例子

如:id定位可直接使用:js.executeScript("document.getElementById(\"ext-gen543\").scrollTop=1000");

--------移动到最底部

class定位、name定位和id定位操作一样,只有xpath不同,因为js中对xpath是单独的方法。

java+selenium使用JS、键盘滑动滚动条的更多相关文章

  1. Java&Selenium调用JS实现高亮被操作页面元素高亮

    Java&Selenium调用JS实现高亮被操作页面元素高亮 /* * the method of invoking js to do something * * @author daviey ...

  2. python3 + selenium 使用 JS操作页面滚动条

    js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...

  3. selenium+Python(Js处理浏览器滚动条)

    控制浏览器滚动条 有时候我们需要控制页面滚动条上的滚动条,但滚动条并非页面上的元素,这个时候就需要借助 js 是来进行操作.一般用到操作滚动条的会两个场景: 注册时的法律条文需要阅读,判断用户是否阅读 ...

  4. Java+selenium 如何下拉移动滚动条【实战】

    一.场景:在编写脚本过程中需要定位的元素,在界面的底部,需要拖拽下拉滚动条,再进行定位元素. 实现思路:用Selenium 里面的 scrollTo 方法实现 二.脚本示例: 1. 用例设计 @The ...

  5. java selenium webdriver处理JS操作窗口滚动条

    未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...

  6. Python selenium webdriver设置js操作页面滚动条

    js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...

  7. 自动化测试基础篇--Selenium中JS处理滚动条

    摘自https://www.cnblogs.com/sanzangTst/p/7692285.html 前言 什么是JS? JS就是JavaScript: JavaScript 是世界上最流行的脚本语 ...

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

    Java&Selenium控制滚动条方法封装 package util; import org.openqa.selenium.JavascriptExecutor; import org.o ...

  9. 自动化测试-13.selenium执行JS处理滚动条

    前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...

随机推荐

  1. java 动态规划解决最大连续子数列和

    很多动态规划算法非常像数学中的递推.我们如果能找到一个合适的递推公式,就能很容易的解决问题.我们用dp[n]表示以第n个数结尾的最大连续子序列的和,这里第n个数必须在子序列中.于是存在以下递推公式: ...

  2. 使用shell脚本替换Hadoop配置文件的值

    因为懒汉式的实现是线程安全的,所以会降低整个访问速度,而且每次访问都要判断一次.有没有更好的方式实现呢?可以使用"双重检查枷锁"的方式来实现. 所谓"双重检查加锁&quo ...

  3. NetCore的缓存使用详例

    关于我 作者博客|文章首发 缓存基础知识 缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性. 缓存最适用于不经常更改的 数据,生成 成本很高. 通过缓存,可以比从数据源返回的数据的 ...

  4. spring5源码编译过程中必经的坑

    spring源码编译流程:Spring5 源码下载 第 一 步 : https://github.com/spring-projects/spring-framework/archive/v5.0.2 ...

  5. MySQL性能压力基准测试工具sysbench

    1.sysbench介绍 这里介绍一款MySQL数据库的压力测试软件sysbench,用它来进行基准测试. sysbench 是一个开源的.模块化的.跨平台的多线程性能测试工具, 可以用来进行CPU. ...

  6. matlab函数句柄

    matlab函数句柄 直接调用函数:  被调用函数只能被其M文件同名的主函数或在M文件中的其他函数调用,一个文件只有一个主函数. 间接调用函数:  避免只能使用直接调用函数的情况,个人理解就是为一个函 ...

  7. JMeter 结果处理常见问题

    1. 前言 2. 结果处理常见问题 1)在察看结果树中只看失败情况 2)如何把日志放入文件查看 3)cvs 文件中文读取乱码 4)失败请求数据的采集 5)结果树响应数据中文乱码解决办法 1. 前言 工 ...

  8. xPath,beautifulsoup和pyquery

    一.XPath from lxml import etree html = etree.parse('html源代码',etree.HTMLPaser()) 1.节点的获取 a.html.xpath( ...

  9. Hive千亿级数据倾斜解决方案

    数据倾斜问题剖析 数据倾斜是分布式系统不可避免的问题,任何分布式系统都有几率发生数据倾斜,但有些小伙伴在平时工作中感知不是很明显,这里要注意本篇文章的标题-"千亿级数据",为什么说 ...

  10. new word

    strategy: a plan of action or policy designed to achieve a major or overall aim.