鼠标点击操作
鼠标点击事件有以下几种类型:
清单 1. 鼠标左键点击
Actions action = new Actions(driver);action.click();// 鼠标左键在当前停留的位置做单击操作
action.click(driver.findElement(By.name(element)))// 鼠标左键点击指定的元素
清单 2. 鼠标右键点击
Actions action = new Actions(driver);
action.contextClick();// 鼠标右键在当前停留的位置做单击操作
action.contextClick(driver.findElement(By.name(element)))// 鼠标右键点击指定的元素
清单 3. 鼠标双击操作
Actions action = new Actions(driver);
action.doubleClick();// 鼠标在当前停留的位置做双击操作
var script = document.createElement('script');
script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
action.doubleClick(driver.findElement(By.name(element)))// 鼠标双击指定的元素
清单 4. 鼠标拖拽动作
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)。所以上面的方法也可以拆分成以下的几个执行动作来完成:
action.clickAndHold(source).moveToElement(target).perform(); action.release();
清单 5. 鼠标悬停操作
Actions action = new Actions(driver);
action.clickAndHold();// 鼠标悬停在当前位置,既点击并且不释放 action.clickAndHold(onElement);// 鼠标悬停在 onElement 元素的位置
action.clickAndHold(onElement) 这个方法实际上是执行了两个动作,首先是鼠标移动到元素 onElement,然后再 clickAndHold, 所以这个方法也可以写成 action.moveToElement(onElement).clickAndHold()。
清单 6. 鼠标移动操作
Actions action = new Actions(driver);
action.moveToElement(toElement);// 将鼠标移到 toElement 元素中点 // 将鼠标移到元素 toElement 的 (xOffset, yOffset) 位置,
//这里的 (xOffset, yOffset) 是以元素 toElement 的左上角为 (0,0) 开始的 (x, y) 坐标轴。
var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;
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. 鼠标释放操
Actions action = new Actions(driver); action.release();// 释放鼠标
PS:一般只使用移动的事件,不点击的情况下鼠标事件可以不释放
http://www.cnblogs.com/lingling99/p/5750266.html
相关推荐
8. **高级技巧**:可能涉及多窗口操作、模拟键盘鼠标事件、处理弹出框和对话框,以及执行JavaScript等进阶功能。 9. **实战案例**:提供多个完整的网页自动化测试案例,例如登录注册流程、商品搜索、购物车操作等,...
在提供的文档内容中,提到了关于使用Python语言与Selenium WebDriver结合的第三版书籍《selenium webdriver (python)第三版》,该书对于自动化测试的学习者来说是一本宝贵的资料。书中不仅覆盖了基础知识,如环境的...
- 将 WebDriver 添加到项目的 classpath 中。 - 对于 Python 用户,还需要安装相应的库 (`selenium` 包)。 - **1.4 安装 ChromeDriver**: - 根据使用的 Chrome 版本下载对应版本的 ChromeDriver。 - 设置 ...
- 模拟键盘和鼠标事件:使用`ActionChains`类模拟用户输入。 - 并行测试:使用`TestNG`或`pytest`进行多浏览器并行测试。 总之,Selenium WebDriver为自动化测试提供了强大的工具,无论是在Windows还是Linux系统上...
《Selenium WebDriver 实践指南-代码》是一个针对自动化测试工程师的宝贵资源,它包含了实际操作中的Selenium WebDriver的源代码示例。Selenium WebDriver是一个强大的工具集,用于自动化Web浏览器,支持多种编程...
- 使用Selenium WebDriver的Actions类模拟鼠标和键盘事件。 #### 十二、处理表格 第十二章详细讲解了如何使用Selenium WebDriver处理表格数据。表格在Web应用中极为常见,而有效地与之交互则是自动化测试的一个...
最后,对于有selenium RC经验的用户来说,指南还会介绍如何在selenium WebDriver中实现类似selenium RC中的功能。这通常涉及到理解selenium WebDriver与selenium RC在API上的差异,并迁移到新的方法。 同步selenium...
- **Actions API**:利用WebDriver提供的Actions API实现复杂的用户交互行为,如鼠标悬停、拖拽等。 - **JavaScriptExecutor**:通过JavaScriptExecutor接口执行任意JavaScript代码,实现特定功能或解决浏览器限制...
标题中提到的“Selenium Webdriver (Python) 第三版”指向了一本关于使用Python语言编写的Selenium WebDriver进行前端自动化测试的教程书籍。Selenium WebDriver是测试自动化框架中的一个组成部分,广泛用于Web应用...
同时,对于测试中常见的浏览器操作,如最大化窗口、前进后退操作、鼠标事件和键盘事件等,书中都有详细描述和代码示例。 在自动化测试的实践中,测试人员经常会遇到需要向测试对象发送键盘输入、鼠标点击等操作的...
文档还介绍了如何处理用户界面交互,如键盘和鼠标事件。这部分内容包括了键盘按键、组合键的使用以及鼠标点击、双击、拖放等操作。这些操作在编写自动化测试时非常有用,尤其是在需要模拟复杂用户交互的场景中。 ...
除了基本的浏览器控制,它还支持许多高级操作,如元素定位、交互(点击、输入文本等)、模拟用户行为(如鼠标悬停、键盘事件)、处理弹出窗口和对话框,以及执行JavaScript等。 #### 4.1 访问链接 在页面上,我们...
一旦定位到元素,可以执行各种操作,如点击(`click()`), 输入文本(`send_keys()`),检查属性(`get_attribute()`),甚至模拟鼠标和键盘事件。 **5. 断言和等待** 在编写测试脚本时,断言用来验证预期结果是否与实际...
C#中的Selenium WebDriver 该存储库包含针对开发人员的Webdriver代码示例,练习和教程。 随着时间的流逝,越来越多的测试示例将在此处上传。 除非另有说明,否则该存储库中的所有测试示例均应视为公共领域。 注意...
本文档详细介绍了selenium_webdriver在Python中的应用,从环境搭建到实际操作,内容覆盖了Selenium的基础知识、元素定位、等待时间的处理、浏览器操作、键盘和鼠标事件处理、多层框架/窗口定位、上传文件操作、...
Selenium-WebDriver作为一个自动化测试工具,被广泛应用于Web应用的测试中。它允许开发者用不同的编程语言编写脚本来模拟用户在浏览器中的行为,如点击链接、填写表单、导航等操作。该工具的一个重要特点是能够跨...