鼠标点击操作
鼠标点击事件有以下几种类型:
清单 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
相关推荐
C#中的Selenium WebDriver 该存储库包含针对开发人员的Webdriver代码示例,练习和教程。 随着时间的流逝,越来越多的测试示例将在此处上传。 除非另有说明,否则该存储库中的所有测试示例均应视为公共领域。 注意...
Selenium WebDriver 此存储库包含针对开发人员的WebDriver代码示例,练习和教程。 随着时间的流逝,越来越多的测试示例将在此处上传。 除非另有说明,否则该存储库中的所有测试示例均应视为公共领域。 演示网站练习...
总结Selenium_WebDriver中一些鼠标和键盘事件的使用
这是您可以练习Selenium webdriver的网站列表。 您会发现该列表非常有用,因为它们将涵盖您的许多实时Web自动化用例场景。 一些常见的示例包括对登录页面的测试,在线注册表格和自动航班预订。 带有以下示例: ...
与现有的WebDriver客户端库假定远程服务器将执行正确的操作不同,Leadfoot在可能的情况下使用本机WebDriver / Selenium命令检测并解决WebDriver服务器实现中的不一致问题,因此,您只需要担心使测试正常工作即可,...
引言 —-在实际的web测试工作中,需要配合键盘按键来操作,webdriver的 keys()类提供键盘上所有按键的操作,...from selenium.webdriver.common.action_chains import ActionChains ##对鼠标事件操作 from selenium.we
Selenium 测试环境搭建单元测试、生成测试报告、定位元素、WebDriver属性和方法、WebElement属性和方法、操作form表单、操作下拉列表、处理等待、远程测试、Selenium Grid、鼠标事件、键盘事件、调用js、屏幕截图、...
在我们浏览网页的时候经常会碰到下拉框,WebDriver提供了Select类来处理下拉框,详情请往下看: ... move_to_element():鼠标悬停(详情请参考Python爬虫 – Selenium(5)鼠标事件) from selenium im
1)本机键盘和鼠标事件 2)同源策略XSS/HTTP(S) 3)弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载) Selenium2.0有简洁的API,WebDriver和WebElement对象,更好的抽象。且支持多中操作系统,多语言...
除了可以使用 click( ) 来模拟鼠标的单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键、双击、悬停、拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封装在 ActionChains 类中。...
其实在WebDriver中,提供了许多鼠标操作的方法,这些操作方法都封装在ActionChains类中,包括鼠标右击、双击、悬停和鼠标拖动等功能。 ActionChains类提供的鼠标操作事件 context_click():点击鼠标右键 double_...
这里提到的 Selenium WebDriver 是对浏览器提供的原生 API 进行封装,使用这套 API 可以操控浏览器的开启、关闭,打开网页,操作界面元素,控制 Cookie。简单说就是,可以通过写代码的方式来自动实现用户鼠标和键盘...
测试在您的 Chrome 浏览器中运行,因此无论您如何开发应用程序,React、Angular、Vue 或其他框架,Record/Replay 都可以正常工作。 我们旨在为所有开发人员提供服务,从没有编程经验的开发人员到具有多种测试框架...
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains dr = webdriver.Chrome() dr.get('http://www.baidu.com') ActionChains(dr).move_by_offset(200, 100).click()...
相信大家在selenium爬取网页的时候都遇到过这样的问题:就是网页内容需要用鼠标滚动加载剩余内容,而不是一次全部加载出网页的全部内容,这个时候如果要模拟翻页的时候就必须加载出全部的内容,不然定位元素会找不到...
Selenium 测试环境搭建单元测试、生成测试报告、定位元素、WebDriver属性和方法、WebElement属性和方法、操作form表单、操作下拉列表、处理等待、远程测试、Selenium Grid、鼠标事件、键盘事件、调用js、屏幕截图、...
自动化测试框架:Selenium 3.x 浏览器及对应驱动:Firefox(geckodriver.exe)或者Chrome(chromedriver.exe) 系统环境:windows10 2. 环境搭建 2.1 下载并安装Python环境 2.1.1 下载 官网地址:...
而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action_chains.ActionChains(driver) 这个类基本能够满足我们所有对鼠标操作的需求。 1.ActionChains基本用法 首先需要...
先给大家介绍下Selenium3+python3–如何定位鼠标悬停才显示的元素 定位鼠标悬停才显示的元素,要引入新模块 # coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import...
基于selenium进行动作链 由于最近很多人聊到滑动验证码怎么处理,所以决定...from selenium.webdriver.common.action_chains import ActionChains artice = browser.find_element_by_class_name('geetest_slider_but