美文网首页
selenium---键盘事件

selenium---键盘事件

作者: 小胖5920 | 来源:发表于2019-06-13 16:27 被阅读0次

    这些是我们经常使用的键盘操作方法
    sendKeys(Keys.BACK_SPACE) 删除键
    sendKeys(Keys.SPACE) 空格键
    sendKeys(Keys.TAB) 制表键
    sendKeys(Keys.ESCAPE) 回退键
    sendKeys(Keys.ENTER) 回车键
    sendKeys(Keys.CONTOL ,"a") 全选
    sendKeys(Keys.CONTOL ,"c") 复制
    sendKeys(Keys.CONTOL ,"x") 剪切
    sendKeys(Keys.CONTOL ,"v") 粘贴
    sendKeys(Keys.F1) 键盘F1

    以下是模拟下百度的测试用例
    public class baidu {
    public static void main(String[] args) throws InterruptedException {
    System.out.println("开始执行代码");
    System.setProperty("webdriver.chrome.driver", "C:\app\chromedriver_win32\chromedriver.exe");
    WebDriver webDriver = new ChromeDriver();
    webDriver.get("http://www.baidu.com");
    Thread.sleep(3000);
    WebElement tb=webDriver.findElement(By.id("kw"));
    // System.out.println("输入框大小为:"+txtbox.getSize()+";属性类型为:"+txtbox.getAttribute("type")+";元素是否可见:"+txtbox.isDisplayed());
    tb.sendKeys("javaa");
    Thread.sleep(3000);
    //删除最后一个内容
    tb.sendKeys(Keys.BACK_SPACE);
    Thread.sleep(3000);
    //输入空格加教程
    tb.sendKeys(Keys.SPACE+"教程");
    Thread.sleep(3000);
    //ctrl+a 全选输入框内容
    tb.sendKeys(Keys.CONTROL,"a");
    Thread.sleep(3000);
    //ctrl+x 剪切输入框内容
    tb.sendKeys(Keys.CONTROL,"x");
    Thread.sleep(3000);
    //ctrl+v 粘贴内容到输入框中
    tb.sendKeys(Keys.CONTROL,"v");
    Thread.sleep(3000);
    //利用回车代替点击确认按钮
    tb.sendKeys(Keys.ENTER);
    //WebElement btn=webDriver.findElement(By.id("su"));
    //btn.click();
    Thread.sleep(3000);
    webDriver.close();
    System.out.println("写完了哈");
    }
    }

    1. 普通键盘模拟

    对于普通键盘,使用 sendKeys(key) 就可以实现,比如数字键、tab、空格等。

    Actions action = new Actions(driver);

    action.sendKeys(Keys.TAB). sendKeys(keys.NULL); //模拟按下TAB 键

    action.sendKeys(Keys.SPACE). sendKeys(keys.NULL); //模拟按下空格键

    Actions中的sendKeys(key)对于按键的调用并不会释放,应该再调用 sendKeys(keys.NULL) 来释放按键。

    1. 修饰键

    对于修饰键,使用KeyDown(Key)、keyUp(Key)来实现,一般都是跟普通键组合使用的。比如Alt+F4、Ctrl+Alt+a等等。

    Actions action = new Actions(driver);

    action.keyDown(Keys.CONTROL); //按下 Ctrl 键

    action.keyUp(Keys.CONTROL); //释放 Ctrl 键

    使用快捷键Ctrl+Alt+a,可以通过下面语句来实现:

    action.keyDown(Keys.CONTROL).keyDown(Keys.ALT).sendKeys(“a”).keyUp(Keys.CONTROL).keyUp(Keys.ALT).perform();

    对于keyDown(Key)方法的调用,如果没有接着调用keyUp(Key)或者sendKeys(Keys.NULL) 来释放的话,这个按键将也一样保持按住状态,KeyDown(Key)、KeyUp(Keys) 方法的参数只能传修饰键, 否者将抛出IllegalArgumentException异常。

    3.特殊按键操作

    在WebDriver中,还有一些不常用到的功能键如 PrtSc、ScrLk/NmLk。而对于一些功能组合键,如Alt+PrtSC来抓取当前屏幕,通过 WebDriver 的 Keys 是没办法操作的。这个时候我们就需要用到 Java 的 Robot 类来实现对这类组合键的操作了。

    Robot robot = new Robot();

    robot.keyPress(java.awt.event.KeyEvent.VK_ALT); //模拟按下ALT键

    robot.keyPress(java.awt.event.KeyEvent.VK_PRINTSCREEN); //模拟按下PrtSC键

    robot.keyRelease(java.awt.event.KeyEvent.VK_ALT); //释放按键

    作者:Sorin-zheng
    来源:CSDN
    原文:https://blog.csdn.net/zhengshaolong8125/article/details/78079554
    版权声明:本文为博主原创文章,转载请附上博文链接!

    打开开发者工具的方法 fn+f12

    try {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_F12);
    robot.keyRelease(KeyEvent.VK_F12);
    } catch (Exception e){
    e.printStackTrace();
    }

    相关文章

      网友评论

          本文标题:selenium---键盘事件

          本文链接:https://www.haomeiwen.com/subject/hvbsfctx.html