java+selenium使用JS、键盘滑动滚动条
本篇文章介绍如何使用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、键盘滑动滚动条的更多相关文章
- Java&Selenium调用JS实现高亮被操作页面元素高亮
Java&Selenium调用JS实现高亮被操作页面元素高亮 /* * the method of invoking js to do something * * @author daviey ...
- python3 + selenium 使用 JS操作页面滚动条
js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...
- selenium+Python(Js处理浏览器滚动条)
控制浏览器滚动条 有时候我们需要控制页面滚动条上的滚动条,但滚动条并非页面上的元素,这个时候就需要借助 js 是来进行操作.一般用到操作滚动条的会两个场景: 注册时的法律条文需要阅读,判断用户是否阅读 ...
- Java+selenium 如何下拉移动滚动条【实战】
一.场景:在编写脚本过程中需要定位的元素,在界面的底部,需要拖拽下拉滚动条,再进行定位元素. 实现思路:用Selenium 里面的 scrollTo 方法实现 二.脚本示例: 1. 用例设计 @The ...
- java selenium webdriver处理JS操作窗口滚动条
未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...
- Python selenium webdriver设置js操作页面滚动条
js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...
- 自动化测试基础篇--Selenium中JS处理滚动条
摘自https://www.cnblogs.com/sanzangTst/p/7692285.html 前言 什么是JS? JS就是JavaScript: JavaScript 是世界上最流行的脚本语 ...
- Java&Selenium控制滚动条方法封装
Java&Selenium控制滚动条方法封装 package util; import org.openqa.selenium.JavascriptExecutor; import org.o ...
- 自动化测试-13.selenium执行JS处理滚动条
前言 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了. 常见场景: 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的. 这时候 ...
随机推荐
- 在Python中创建M x N的数组
在Python中创建M x N的数组 一般有三种方法: 列表乘法 dp = [[0] * n] * m for 循环 dp= [[0 for _ in range(n)] for _ in range ...
- PTA 找出不是两个数组共有的元素
7-2 找出不是两个数组共有的元素 (20 分) 给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤),随后是N个整数,其间以 ...
- 微信小程序--简约风博客小程序(基于云开发 - 全开源)
微信小程序--简约风博客小程序(基于云开发 - 全开源) 项目启动纯属突发奇想,想看看博客小程序,例如wehalo博客小程序,但是感觉自建平台还要浪费自己的服务器算力,还没有访问量,省省吧. 本着白嫖 ...
- java例题_23 递归求年龄
1 /*23 [程序 23 求岁数] 2 题目:有 5 个人坐在一起,问第五个人多少岁,他说比第 4 个人大 2 岁.问第 4 个人岁数,他说比第 3 个 3 人大 2 岁.问第三个人,又说比第 2 ...
- java例题_18 乒乓球比赛(对手问题)
1 /*18 [程序 18 乒乓球赛] 2 题目:两个乒乓球队进行比赛,各出三人.甲队为 a,b,c 三人,乙队为 x,y,z 三人.已抽签决定比赛名单. 3 有人向队员打听比赛的名单.a说他不和 x ...
- 力扣 - 剑指 Offer 37. 序列化二叉树
目录 题目 思路 代码 复杂度分析 题目 剑指 Offer 37. 序列化二叉树 思路 序列化其实就是层序遍历 但是,要能反序列化的话,前.中.后.层序遍历是不够的,必须在序列化时候保存所有信息,这样 ...
- DAOS 分布式异步对象存储|存储模型
概述 DAOS Pool 是分布在 Target 集合上的存储资源预留.分配给每个 Target 上的 Pool 的实际空间称为 Pool Shard. 分配给 Pool 的总空间在创建时确定,后期可 ...
- CodeForces CF877D题解(BFS+STL-set)
解法\(1:\) 正常的\(bfs\)剪枝是\(\Theta(nm4k)\),这个时间复杂度是只加一个\(vis\)记录的剪枝的,只能保证每个点只进队一次,并不能做到其他的减少时间,所以理论上是过不了 ...
- C++并发与多线程学习笔记--参数传递详解
传递临时对象 陷阱 总结 临时对象作为线程参数 线程id的概念 临时对象构造时的抓捕 成员函数指针做线程函数 传递临时对象作为线程参数 创建的工作线程不止一个,线程根据编号来确定工作内容.每个线程都需 ...
- [BFS]细胞问题
细胞问题 题目描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.(1<=m,n<=100)? 输入格 ...