Actions类

一、鼠标右击、双击

  Java代码

//定位百度首页右上角  新闻
WebElement Xw=driver.findElement(By.xpath("//*[@id='u1']/a[1]"));
//new Actions对象
Actions RightClick=new Actions(driver);
//在 新闻 上点击鼠标右键
RightClick.contextClick(Xw).perform();
Thread.sleep(3000);
//双击 新闻
RightClick.doubleClick(Xw).perform();
Thread.sleep(3000);

二、鼠标移动到指定位置

  java代码

//定位百度首页右侧 更多产品
WebElement gdcp=driver.findElement(By.xpath("//*[text()='更多产品']"));
//实例化Actions
Actions MTE=new Actions(driver);
//鼠标移动到 更多产品上
MTE.moveToElement(gdcp).perform();
//等待3秒
Thread.sleep(3000);

三、拖动元素

  java代码

//定位要拖动的元素
WebElement dg=driver.findElement(By.xpath("//*[text()='拖动']"));
//实例化Actions
Actions tuodong=new Actions(driver);
Thread.sleep(1000);
//将定位的dg拖动(100,300)
tuodong.dragAndDropBy(dg,100,300).perform();
Thread.sleep(2000);

四、将元素拖到另一元素上

  java代码

//定位要拖动的元素
WebElement ElementStart=driver.findElement(By.xpath("//*[text()='拖动']"));
//定位终点上的元素
WebElement ElementEnd=driver.findElement(By.xpath("//*[text()='tuodongduodong']"));
//实例化Actions
Actions CM=new Actions(driver);
CM.clickAndHold(ElementStart)
.moveToElement(ElementEnd)
.release(ElementEnd)
.perform();

五、下拉框多选

  HTML源码

    <td>多选下拉框</td>
<select id="selects" multiple="multiple">
<option label="java">java</option>
<option label="c">c</option>
<option label="c++">c++</option>
<option label="VB">VB</option>
<option label="php">php</option>
<option label="python">python</option>
<option label="ruby">ruby</option>
</select>

Java代码


    //获取下拉框中所有的文本元素
List<WebElement> list=driver.findElements(By.xpath("//*[@id='selects']/option"));
//实例化Actions
Actions AtList=new Actions(driver);
//按下CONTROL键
AtList.keyDown(Keys.CONTROL)
//点击第一个元素,第一个元素是被默认选中的,所以不想选择第一个就再点一下
.click(list.get(0))
//点击第二个元素
.click(list.get(2))
//点击第四个元素
.click(list.get(3))
//释放CONTROL键
.keyUp(Keys.CONTROL)
//执行
.perform();

Robot类

按下按键 keyPress()

释放按键 keyRelease()

public void Robot() throws AWTException{
driver.get("https://www.baidu.com/");
//实例化Robot
Robot rb=new Robot();
//按下CONTROL键
rb.keyPress(KeyEvent.VK_CONTROL);
//按下s键
rb.keyPress(KeyEvent.VK_S);
Thread.sleep(1000);
//松开s键
rb.keyRelease(KeyEvent.VK_S);
//松开CONTROL键
rb.keyRelease(KeyEvent.VK_CONTROL); }

java-selenium-java鼠标键盘操作Actions类和Robot的更多相关文章

  1. selenium模拟鼠标键盘操作

    简单操作: 1.点击(鼠标左键)页面按钮:click() 2.清空输入框:clear() 3.输入字符串:send_keys()submit提交表单: 1.一般情况可以点击搜索按钮来搜索 2.也可以用 ...

  2. Java+selenium之WebDriver模拟鼠标键盘操作(六)

    org.openqa.selenium.interactions.Actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作.对于这些操作,使用 perform()方法进行执行 ...

  3. Java&Selenium 模拟鼠标方法封装

    Java&Selenium 模拟鼠标方法封装 package util; import org.openqa.selenium.By; import org.openqa.selenium.W ...

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

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

  5. Python+Selenium自动化-模拟键盘操作

    Python+Selenium自动化-模拟键盘操作   0.导入键盘类Keys() selenium中的Keys()类提供了大部分的键盘操作方法:通过send_keys()方法来模拟键盘上的按键. # ...

  6. selenium webdriver(4)---模拟鼠标键盘操作

    webdriver提供Actions来模拟鼠标悬浮.拖拽和键盘输入等操作,详细代码见org.openqa.selenium.interactions.Actions.本文通过几个实例来说明Action ...

  7. WebDriver API——鼠标及键盘操作Actions

    在自动化中我们可能需要用到鼠标或者是键盘操作,在webdriver中是Actions类进行这些操作的. 代码如下: Actions action = new Actions(driver); //-- ...

  8. python selenium鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件--ActionChains sele ...

  9. selenium之 玩转鼠标键盘操作(ActionChains)

    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等.而selenium给我们提供了一个类来处理这类事件——ActionChains sele ...

随机推荐

  1. HYSBZ - 3813 奇数国 欧拉函数+树状数组(线段树)

    HYSBZ - 3813奇数国 中文题,巨苟题,巨无敌苟!!首先是关于不相冲数,也就是互质数的处理,欧拉函数是可以求出互质数,但是这里的product非常大,最小都2100000,这是不可能实现的.所 ...

  2. Spring——JdbcTemplate

    一.JdbcTemplate介绍: 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架,Spring Boot Spring Data ...

  3. Codeforces 785 E. Anton and Permutation(分块,树状数组)

    Codeforces 785 E. Anton and Permutation 题目大意:给出n,q.n代表有一个元素从1到n的数组(对应索引1~n),q表示有q个查询.每次查询给出两个数l,r,要求 ...

  4. Eclipse在线安装插件进度缓慢问题

    最近在学习Maven的过程中需要安装m2e 插件,在线安装的缓慢速度实在是让人抓狂,故将自己最后的解决方案记录下来,以供其他人参考. 最终的原因是安装时同时检查更新了其他插件的最新版,所以安装插件时注 ...

  5. Vue双向绑定的实现原理系列(一):Object.defineproperty

    了解Object.defineProperty() github源码 Object.defineProperty()方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. ...

  6. redis远程连接命令

    redis-cli -h 172.17.0.85 -p 6379 输入密码 auth "1234

  7. Python——语言基础

    1.数据类型 1.1.字符串 1.1.1.变量声明 1.1.2.相关函数 1.2.布尔类型 1.2.1.变量声明 1.2.2.相关函数 1.3.数字类型 1.3.1.变量声明 1.3.2.相关函数 1 ...

  8. c++ / % 四舍五入 向上取整ceil 向下取整floor

     / % 四舍五入 向上取整ceil 向下取整floor #include <math.h> double floor(double x); float floorf(float x); ...

  9. Nginx配置文件详细说明 (转)

    Nginx配置文件详细说明 原文链接:http://www.cnblogs.com/Joans/p/4386556.html 在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收 ...

  10. 在Linux上部署Nginx,反向代理tornado的WebSite

    1.安装 Nginx yum install -y nginx 2. 修改nginx配置文件 cd /etc/nginx/ mv nginx.conf nginx.conf.swf mv nginx. ...