zoukankan      html  css  js  c++  java
  • 关于Actions和Robot的区别简单说明

    Actions和Robot都是可以用来模拟键盘操作,但是两者还是有区别的

    Actions actions =new Actions(driver)

    实例化一个Actions后,我们可以使用actions调用鼠标的相关操作

    actions.click:鼠标左键单击
    
    actions.contextClick:鼠标右键单击
    
    actions.doubleClick:鼠标左键双击
    
    actions.dragAndDrop:鼠标左键拖曳
    
    actions.clickAndHold:数据悬停
    
    actions.moveByOffset:鼠标移动操作
    
    actions.release:鼠标释放

    当然,actions也是可以模拟键盘,不过对于actions对键盘的操作是分为2类的,普通键+修饰键

    普通键:比如按键 TAB、Backspace 等

    修饰键:在个人计算机上的键盘上,有以下几个修饰键:Shift、Ctrl、Alt(Option)、AltGr、Windows logo、Command、FN(Function)。但是在 WebDriver 中,一般的修饰键指前面三个;修饰键一般跟普通键组合使用的。比如 Ctrl+a、Alt+F4、 Shift+Ctrl+F 等等

    普通键
    
    actions.senkey(Keys.TAB):模拟键盘按下tab键并释放
    
    修饰键
    
    actions.KeyDown(Keys.CONTROL):模拟按下control键
    
    actions.KeyUp(Keys.CONTROL):模拟释放control键
    通过 Alt+F4 来关闭当前的活动窗口,可以通过下面语句来实现:action.keyDown(Keys.ALT).keyDown(Keys.F4).keyUp(Keys.ALT).perform();
    而如果是对于像键盘上面的字母键 a,b,c,d... 等的组合使用,可以通过以下语句实现 :action.keyDown(Keys.CONTROL).sednKeys(“a”).perform();

    通过举例说明普通键+修饰键,可以看到区别就是

    普通键:调用就是按下并释放

    修饰键:调用按下键还需调用释放键,这个说的单独调用时候,如果是和普通键组合使用就无需如此

    Robot robot=new Robot();//这个地方就可以看出来,Actions有传driver作为参数,Robot没有,Robot其实是java中的类

    对于一些功能组合键,如 Fn + NmLk 来关闭或者打开数字键,或者 Alt+PrtSC 来抓取当前屏幕的活动窗口并保存到图片,通过 WebDriver 的 Keys 是没办法操作的。 这个时候我们就需要用到 Java 的 Robot 类来实现对这类组合键的操作了。同样Robot调用需要步骤就是调用按下键还需调用释放键

    //模拟键盘按下ctrl+v并释放
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_V);
    robot.keyRelease(KeyEvent.VK_CONTROL);
  • 相关阅读:
    My SQL
    弹窗
    DBDA
    ThinkPHP验证码与文件上传
    ThinkPHP表单验证
    ThinkPHP增删改
    ThinkPHP模型(查询)
    ThinkPHP跨控制器调用方法
    Superset安装
    Presto资源组配置
  • 原文地址:https://www.cnblogs.com/xxyBlogs/p/5866559.html
Copyright © 2011-2022 走看看