文档章节

Selenium WebDriver 中鼠标操作

车风风
 车风风
发布于 2017/08/18 13:36
字数 842
阅读 9
收藏 0

鼠标点击操作

鼠标点击事件有以下几种类型:

清单 1. 鼠标左键点击

1

2

Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作

action.click(driver.findElement(By.name(element)))// 鼠标左键点击指定的元素

清单 2. 鼠标右键点击

1

2

3

Actions action = new Actions(driver);

 action.contextClick();// 鼠标右键在当前停留的位置做单击操作

action.contextClick(driver.findElement(By.name(element)))// 鼠标右键点击指定的元素

清单 3. 鼠标双击操作

1

2

3

Actions action = new Actions(driver);

 action.doubleClick();// 鼠标在当前停留的位置做双击操作

action.doubleClick(driver.findElement(By.name(element)))// 鼠标双击指定的元素

清单 4. 鼠标拖拽动作

1

2

3

4

5

Actions action = new Actions(driver);

// 鼠标拖拽动作,将 source 元素拖放到 target 元素的位置。

 action.dragAndDrop(source,target);

// 鼠标拖拽动作,将 source 元素拖放到 (xOffset, yOffset) 位置,其中 xOffset 为横坐标,yOffset 为纵坐标。

action.dragAndDrop(source,xOffset,yOffset);

在这个拖拽的过程中,已经使用到了鼠标的组合动作,首先是鼠标点击并按住 (click-and-hold) source 元素,然后执行鼠标移动动作 (mouse move),移动到 target 元素位置或者是 (xOffset, yOffset) 位置,再执行鼠标的释放动作 (mouse release)。所以上面的方法也可以拆分成以下的几个执行动作来完成:

1

2

action.clickAndHold(source).moveToElement(target).perform();

 action.release();

清单 5. 鼠标悬停操作

1

2

3

Actions action = new Actions(driver);

action.clickAndHold();// 鼠标悬停在当前位置,既点击并且不释放

action.clickAndHold(onElement);// 鼠标悬停在 onElement 元素的位置

action.clickAndHold(onElement) 这个方法实际上是执行了两个动作,首先是鼠标移动到元素 onElement,然后再 clickAndHold, 所以这个方法也可以写成 action.moveToElement(onElement).clickAndHold()。

清单 6. 鼠标移动操作

1

2

3

4

5

6

7

Actions action = new Actions(driver);

 action.moveToElement(toElement);// 将鼠标移到 toElement 元素中点

// 将鼠标移到元素 toElement 的 (xOffset, yOffset) 位置,

//这里的 (xOffset, yOffset) 是以元素 toElement 的左上角为 (0,0) 开始的 (x, y) 坐标轴。

 action.moveToElement(toElement,xOffset,yOffset)

// 以鼠标当前位置或者 (0,0) 为中心开始移动到 (xOffset, yOffset) 坐标轴

 action.moveByOffset(xOffset,yOffset);

action.moveByOffset(xOffset,yOffset) 这里需要注意,如果 xOffset 为负数,表示横坐标向左移动,yOffset 为负数表示纵坐标向上移动。而且如果这两个值大于当前屏幕的大小,鼠标只能移到屏幕最边界的位置同时抛出 MoveTargetOutOfBoundsExecption 的异常。

鼠标移动操作在测试环境中比较常用到的场景是需要获取某元素的 flyover/tips,实际应用中很多 flyover 只有当鼠标移动到这个元素之后才出现,所以这个时候通过执行 moveToElement(toElement) 操作,就能达到预期的效果。但是根据我个人的经验,这个方法对于某些特定产品的图标,图像之类的 flyover/tips 也不起作用,虽然在手动操作的时候移动鼠标到这些图标上面可以出现 flyover, 但是当使用 WebDriver 来模拟这一移动操作时,虽然方法成功执行了,但是 flyover 却出不来。所以在实际应用中,还需要对具体的产品页面做相应的处理。

清单 7. 鼠标释放操

1

2

Actions action = new Actions(driver);

action.release();// 释放鼠标

© 著作权归作者所有

车风风
粉丝 2
博文 11
码字总数 6855
作品 0
成都
私信 提问
selenium2-python05-鼠标事件

前面例子中我们已经学习到可以用 click()来模拟鼠标的单击操作,而我们在实际的 web 产品测试中 发现,有关鼠标的操作,不单单只有单击,有时候还要和到右击,双击,拖动等操作,这些操作包含在 Ac...

丰_申
2016/02/04
11
0
Selenium2+python自动化12-操作元素(键盘和鼠标事件)

前言 本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 一、简单操作 1.点击(鼠标左键)页面按钮:click() 2.请空输入框:clear() 3.输入字符串:send_keys() 4.打开测试部落论...

上海-悠悠
2016/12/03
0
0
selenium Python定位元素和相关事件

场景 通过使用selenium python的API能够很好的定位html中的元素,并指挥鼠标进行点击。 定位元素 findelementby_*方法 findelementbyid(id) : html标签中的id确定标签 findelementbylinktex...

亚林瓜子
05/21
30
0
Selenium - Web自动化测试的基本操作实现

1 控制浏览器 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退、前进按钮等。 1.1 控制浏览器窗口大小 在不同的浏览器大...

还是要坚强
2017/10/18
245
0
总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为。比如使用鼠标单击、双击、右击、拖拽等动作;或者键盘输入、快捷键使用、组合键使用等模拟键盘的操作。在 ...

孟飞阳
2016/07/07
110
0

没有更多内容

加载失败,请刷新页面

加载更多

高级技术题整理

1. 为什么等待和通知是在 Object 类而不是 Thread 中声明的? 一个棘手的 Java 问题,如果 Java编程语言不是你设计的,你怎么能回答这个问题呢。Java编程的常识和深入了解有助于回答这种棘手...

泉天下
14分钟前
1
0
Elasticsearch

1 、下载 下载地址:https://www.elastic.co/downloads/past-releases 2 、安装 elasticsearch无需安装,解压即用。 3.运行 进入elasticsearch/bin目录,可以看到下面的执行文件: 双击运行 ...

少年已不再年少
14分钟前
4
0
Spring Boot 2.X(七):Spring Cache 使用

Spring Cache 简介 在 Spring 3.1 中引入了多 Cache 的支持,在 spring-context 包中定义了org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 两个接口来统一不同......

朝雾轻寒
16分钟前
2
0
java路径问题

在Java中有几种常见获取文件路径的方法,此处演示下用法和效果。 测试项目目录结构如右图: 1、使用File类 File file = new File("");// Java项目中-->D:\WorkSoftware\Workspace\EclipseP...

随心の随缘
18分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部