总结selenium webdriver中一些鼠标和键盘事件的使用

本文将总结SeleniumWebDriver中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍WebDriver中没有实现的键盘事件(Keys枚举中没有列举的按键)的扩展。举例说明扩展Alt+PrtSc组合键来截取当前活动窗口并将剪切板图像保存到文件。在使用SeleniumWebDriver做自动化测试的时候,会经常模拟鼠标和键盘的一些行为。比如使用鼠标单击、双击、右击、拖拽等动作;或者键盘输入、快捷键使用、组合键使用等模拟键盘的操作。在WebDeriver中,有一个专门的类来负责实现这些测试场景,那就是Actions类,在使用该类的过程中会配合使用到Keys枚举以及Mouse、Keyboard、CompositeAction等类。其次,在实际测试过程中,可能会遇到某些按键没办法使用Actions、Keys等类来实现的情况。比如通过使用Alt+PrtSc组合键来实现截取屏幕当前活动窗口的图像,在Keys枚举中,因为没有枚举出PrtSc键,所以没办法通过Action的KeyDown(Keys)来模拟按下这个动作。再次是在自动化测试中,可能会遇到一些附件、文件上传的场景,或者是多文件上传,这些在Selenium2.0之后,可以直接使用WebElement类的sendKeys()方法来实现。下面就分别介绍这些情况的具体使用。鼠标点击操作鼠标点击事件有以下几种类型:清单1.鼠标左键点击Actionsaction=newActions(driver);action.click();//鼠标左键在当前停留的位置做单击操作action.click(driver.findElement(By.name(element)))//鼠标左键点击指定的元素清单2.鼠标右键点击Actionsaction=newActions(driver);action.contextClick();//鼠标右键在当前停留的位置做单击操作action.contextClick(driver.findElement(By.name(element)))//鼠标右键点击指定的元素清单3.鼠标双击操作Actionsaction=newActions(driver);action.doubleClick();//鼠标在当前停留的位置做双击操作action.doubleClick(driver.findElement(By.name(element)))//鼠标双击指定的元素清单4.鼠标拖拽动作Actionsaction=newActions(driver);---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---//鼠标拖拽动作,将source元素拖放到target元素的位置。action.dragAndDrop(source,target);//鼠标拖拽动作,将source元素拖放到(xOffset,yOffset)位置,其中xOffset为横坐标,yOffset为纵坐标。action.dragAndDrop(source,xOffset,yOffset);在这个拖拽的过程中,已经使用到了鼠标的组合动作,首先是鼠标点击并按住(click-and-hold)source元素,然后执行鼠标移动动作(mousemove),移动到target元素位置或者是(xOffset,yOffset)位置,再执行鼠标的释放动作(mouserelease)。所以上面的方法也可以拆分成以下的几个执行动作来完成:action.clickAndHold(source).moveToElement(target).perform();action.release();清单5.鼠标悬停操作Actionsaction=newActions(driver);action.clickAndHold();//鼠标悬停在当前位置,既点击并且不释放action.clickAndHold(onElement);//鼠标悬停在onElement元素的位置action.clickAndHold(onElement)这个方法实际上是执行了两个动作,首先是鼠标移动到元素onElement,然后再clickAndHold,所以这个方法也可以写成action.moveToElement(onElement).clickAndHold()。清单6.鼠标移动操作Actionsaction=newActions(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的异常。---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---鼠标移动操作在测试环境中比较常用到的场景...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?