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来操作页面滚动条

主要介绍一下垂直方向滚动到最底部,水平方向同理

//导包
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,意思就是滚动到底部
 */

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

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

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

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

感谢各位看官--------------

原文地址:https://www.cnblogs.com/kyrpt/p/9700162.html

时间: 2024-10-16 19:54:43

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

java+selenium+new——模拟键盘操作——复制、粘贴——action类

package rjcs; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; public class a { public static voi

JS控制百度滚动条

JS控制滚动条的位置:window.scrollTo(x,y); 竖向滚动条置顶 window.scrollTo(0,0);竖向滚动条置底 window.scrollTo(0,document.body.scrollHeight) JS控制TextArea滚动条自动滚动到最下部 document.getElementById('textarea').scrollTop = document.getElementById('textarea').scrollHeight 例子: import or

java selenium (五) 元素定位大全

页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 在自动化测试过程中, 测试程序通常的操作页面元素步骤 1. 找到Web的页面元素,并赋予到一个存储对象中 (WebElement) 2. 对存储页面元素的对象进行操作, 例如:点击链接,在输入框中输入字符等 3. 验证页面上的元素是否符合预期 通过这三个步骤, 我们可以完成一个页面元素的操作, 找

selenium移动div里面的滚动条,操作弹出对话框

还是使用js来移动 首先要定位到这个元素 倾向于使用js来定位元素,输入下面的脚本,按下回车键,即可在调试页面看到对应的div块$("div.table-responsive") 滚动方法使用scrollLeft()$("div.table-responsive").scrollLeft(1000) 应用到java selenium中 为了避免输入数字可以这样写 ((JavascriptExecutor) driver).executeScript("$(

JSCover+WebDriver/Selenium获取JS代码覆盖率

我们在看JSCover(http://tntim96.github.io/JSCover/manual/manual.xml)介绍及使用说明的时候,往往被图形界面所吸引.这种方式比较适合手工操作,点击和输入即可. 但是这种往往界面和真实界面相差比较大,因为真正的网页在JSCover内部的浏览加载框中.这使得原有的Selenium代码可能存在诸多问题.那么如何能够尽量少地改变原有的selenium代码而又获取到js的code coverage呢?这可以采用文件模式(File Mode). 1. I

Java+Selenium操作日期时间选择框插件

在自动化测试的时候我们经常会碰到下面的时间日期插件(这个时候这个文本框是不运行我们输入时间的), 我们可以用java获取当前日期,然后用Selenium结合JS代码就可以直接往文本框输入内容. 像这种选择时间的input标签都会有一个readonly=""标签,这个时候我们就只能选择时间,不能手动输入,解决办法如下: Date date = new Date();//先获取当前日期 String startDate = new SimpleDateFormat("yyyy-M

JSCover+WebDriver/Selenium获得JS 代码覆盖

我们看JSCover(http://tntim96.github.io/JSCover/manual/manual.xml)介绍及使用说明的时候,往往被图形界面所吸引.这样的方式比較适合手工操作,点击和输入就可以. 可是这样的往往界面和真实界面相差比較大,由于真正的网页在JSCover内部的浏览载入框中.这使得原有的Selenium代码可能存在诸多问题. 那么怎样可以尽量少地改变原有的selenium代码而又获取到js的code coverage呢?这可以採用文件模式(File Mode). 1

一个关于java+selenium之iframe定位问题

最近做使用java+selenium做一个测试.遇到两个问题,寻找很久解答方案.最终解决了. ① 第一个问题是处理 js 事件弹出对象前未给与反应时间. 具体描述:一般情况获取网络刷新的元素基本会使用selenium的智能等待方法获取.关于这点不做解释.直接贴上代码参考. private static WebElement getElement(WebDriver driver, String type, String value) { return (WebElement) new WebDr

Atitit。Tree文件解析器的原理流程与设计实现  java  c# php js

Atitit.Tree文件解析器的原理流程与设计实现  java  c# php js 1. 解析原理与流程1 1.1. 判断目录  ,表示服  dirFlagChar = "└├─";1 1.2. 剑豪制表符出现的位置与文件夹级别对应表1 1.3. 主要判读流程2 2. Tree结果2 3. Code----3 4. 结果5 1. 解析原理与流程 1.1. 判断目录  ,表示服  dirFlagChar = "└├─"; 其中-类似于剑豪的制表符是表示目录的..够