selenium webdriver模拟鼠标键盘
在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标、键盘的一些输入操作。
1、鼠标的左键点击、双击、拖拽、右键点击等;
2、键盘的回车、回退、空格、ctrl、alt、shift等;
在webdriver中,有专门的一个类,是用来进行鼠标、键盘的模拟操作的,那就是Actions类,该类使用时,又会涉及到Keyboard、Mouse、CompositeAction(复合动作),先对Mouse的方法做简单罗列,然后再用代码说明:
1、鼠标左键点击:
Actions action = new Actions(driver);
action.click(driver.findElement(By.by);
左键点击是普通常用的方法,前面已经介绍过一种更简单的方法:
Driverdriver=new Driver();
driver.findElement(By.xpath(xpath)).click();
2、鼠标左键双击:
Actionsaction = new Actions(driver);
action.doubleClick(driver.findElement(By.xpath(xpath)));
3、鼠标左键按下操作:
Actionsaction = new Actions(driver);
action.clickAndHold(driver.findElemen(By.xpath(xpath)));
4、鼠标左键移动到元素操作:
Actionsaction = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath(xpath)));
5、鼠标右键点击操作:
Actionsaction = new Actions(driver) ;
action.contextClick(driver.findElement(By.xpath(xpath)));
6、组合的鼠标操作(将目标元素拖拽到指定的元素上):
Actionsaction = new Actions(driver);
action.dragAndDrop(driver.findElement(By.xpath(xpath)),driver.findElement(By.xpath(xpath)));
7、组合的鼠标操作(将目标元素拖拽到指定的元素上):
Actionsaction = new Actions(driver);
action.dragAndDrop(driver.findElement(By.xpath(xpath)),xOffset,yOffset);
代码演示:
driver.get("http://www.baidu.com");
driver.findElement(By.name("wd")).sendKeys("林丹");
//点击操作
driver.findElement(by.id("su")).click();
driver.navigate().back();
Actionsaction=new Actions(driver);
action.click(driver.findElement(by.id("su")));
//双击操作(略)
//拖拽选择操作,鼠标按住不放,进行拖拽选择,然后释放鼠标,需要三个动作
action.clickAndHold(driver.findElement(By.id("1"))).moveToElement(driver.findElement(By.id("3"))).perform();
action.release();
//拖拽元素,将一个元素拖拽到另一个元素上,然后释放鼠标(略)
键盘的模拟操作,包括普通按键,比如enter、backspace、tab等,还包括四个修饰键(Modifier Keys),分别是Caps Lock,Control,Option,Command。
普通按键使用时,直接使用sendkeys(theKeys)就可以,如按下enter键:
action.sendKeys(Keys.ENTER).perform();
修饰键一般使用时,是和别的按键配合使用的,比如快捷键ctrl+F4,这时就得使用keyDown(theKeys)、keyUp(theKeys)来操作,代码如下:
driver.get("http://www.baidu.com");
driver.findElement(by.name("wd")).sendKeys("林丹");
Actionsaction=new Actions(driver);
//输入框中输入内容,然后点击回车进行百度
action.sendKeys(Keys.ENTER).perform();
//使用快捷键alt+f4关闭窗口(但是该方法不稳定,时行时不行,不行居多)
action.keyDown(keys.ATL).keyDown(keys.F4).keyUp(keys.ALT).perform();
//使用ctrl+a全选
driver.findElement(By.id("kw")).click();
action.sendKeys(Keys.CONTROL+"a").perform();
转自:https://www.cnblogs.com/111testing/p/6152834.html
Tips:
1、拖拽选择时,使用clickAndHold和moveToElement时,会受到鼠标所在位置的影响,所以尽量是两个方法一起使用;
2、拖拽元素时,dragAndDrop方法,我没有找到实现的场景,所以没有写代码试验;
3、直接按下普通按键时,直接使用sendkeys(theKeys)方法就能够实现;
4、需要使用修饰键时,需要连贯动作中应该使用keydown和keyup方法;
action.keyDown(keys.ATL).sendKeys(keys.F4).keyUp(keys.ALT).perform();//这是不能实现alt+f4关闭窗口的效果的,只能实现单独按f4的效果
5、对于一些快捷键,如ctrl+a,可以直接sendkeys(Keys.CONTROL+"a")。
selenium webdriver模拟鼠标键盘的更多相关文章
- selenium webdriver模拟鼠标键盘操作
在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...
- Java+selenium之WebDriver模拟鼠标键盘操作(六)
org.openqa.selenium.interactions.Actions类,主要定义了一些模拟用户的鼠标mouse,键盘keyboard操作.对于这些操作,使用 perform()方法进行执行 ...
- selenium webdriver 模拟鼠标悬浮
/**模拟鼠标悬浮在某元素上 * @param driver * @param locator */ public static void moveToElement(WebDriver driver ...
- Selenium WebDriver 中鼠标事件(全)
Selenium WebDriver 中鼠标事件(全) 鼠标点击操作 鼠标点击事件有以下几种类型: 清单 1. 鼠标左键点击 Actions action = new Actions(driv ...
- Python+Selenium自动化 模拟鼠标操作
Python+Selenium自动化 模拟鼠标操作 在webdriver中,鼠标的一些操作如:双击.右击.悬停.拖动等都被封装在ActionChains类中,我们只用在需要使用的时候,导入这个类就 ...
- C#模拟鼠标键盘控制其他窗口(一)
编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口.比如,操作飞信定时发送短信等.我之前开发过飞信耗子,用的是对飞信协议进行抓包,然后分析协议,进而模拟协议的执行,开发 ...
- Linux 模拟 鼠标 键盘 事件
/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: ...
- 将CodedUI Test 放到控制台程序中,模拟鼠标键盘操作
CodedUI Test是微软的自动化测试工具,在VS中非常好用.可以用来模拟鼠标点击,键盘输入.但执行的时候必须要用mstest调用,无法传入参数(当然可以写入config文件中,但每次修改十分麻烦 ...
- Delphi下利用WinIo模拟鼠标键盘详解 有参考价值
https://blog.csdn.net/fgrass_163/article/details/6365296 Delphi下利用WinIo模拟鼠标键盘详解 2011年04月26日 21:03:00 ...
随机推荐
- Spring Data CrudRepository增删改查方法(八)
CrudRepository 的主要方法 long count(); boolean exists(Integer arg0); <S extends StudentPO> S sav ...
- Java技术大牛需要学习的25个技能
你需要精通面向对象分析与设计(OOA/OOD).涉及模式(GOF,J2EEDP)以及综合模式.你应该了解UML,尤其是class.object.interaction以及statediagrams. ...
- d3.js 之关联数据:data操作符
数据可视化 在可视化工作中,一个基本出发点是将不同的数值映射到不同的可视化 元素的属性上,使其表现出各自不同的视觉特征. 比如:以数组中的每一个值为直径分别创建一个圆,我们得到三个圆: 在d3中,可视 ...
- 如何在 cmd 中打开设备管理器,如何找到打开其他设备的命令?
Win + R 组合键后,输入 devmgmt.msc 即可. 任意打开一个软件,然后查看其命令行,找到该程序的实际进程名即可. 注意:需要打开的程序需要放在设置过环境变量的目录,确保执行 cmd 时 ...
- Unity系统自带函数生命周期以及相互关系
官方参考手册:http://docs.unity3d.com/Manual/ExecutionOrder.html unity脚本从唤醒到销毁都有着一套比较完善的生命周期,添加任何脚本都要遵守生命周期 ...
- sql server中的孤立用户
此问题出现在数据库的移值上.移值后,数据库的登陆名和数据库用户名孤立,原数据中,用建立的用户名密码登陆可以访问数据库,但是移值后就不能访问了.而且如果您尝试向该登录帐户授予数据库访问权限,则会因该用户 ...
- 单例Singleton模式的两种实现方法
在设计模式中,有一种叫Singleton模式的,用它可以实现一次只运行一个实例.就是说在程序运行期间,某个类只能有一个实例在运行.这种模式用途比较广泛,会经常用到,下面是Singleton模式的两种实 ...
- TensorFlow学习笔记(二)-- MNIST机器学习入门程序学习
此程序被称为TF的 Hello World,19行代码,给人感觉很简单.第一遍看的时候,不到半个小时,就把程序看完了.感觉有点囫囵吞枣的意思,没理解透彻.现在回过头来看,感觉还可以从中学到更多东西. ...
- Ubuntu 16.04 源码编译安装PHP7+swoole
备注: Ubuntu 16.04 Server 版安装过程图文详解 Ubuntu16镜像地址: 链接:https://pan.baidu.com/s/1XTVS6BdwPPmSsF-cYF6B7Q 密 ...
- Java栈之链式栈存储结构实现
一.链栈 采用单链表来保存栈中所有元素,这种链式结构的栈称为链栈. 二.栈的链式存储结构实现 package com.ietree.basic.datastructure.stack; /** * 链 ...