当前位置:主页 > java教程 > Java Selenium键盘

详解Java Selenium中的键盘控制操作

发布:2023-03-02 13:00:01 59


给网友们整理相关的编程文章,网友麴梦丽根据主题投稿了本篇教程内容,涉及到Java、Selenium键盘操作、Java、Selenium键盘、Java、Selenium、Java Selenium键盘相关内容,已被733网友关注,相关难点技巧可以阅读下方的电子资料。

Java Selenium键盘

简介

本文主要简介如何使用java代码利用Selenium 控制浏览器中需要用到的键盘操作。

键盘控制

webdriver 中 Keys 类几乎提供了键盘上的所有按键方法,我们可以使用 send_keys + Keys 实现输出键盘上的组合按键如 “Ctrl + C”、“Ctrl + V” 等。

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
 
/**
 * @author Lenovo
 */
public class SeleniumDemo {
    private final static String webDriver = "webdriver.chrome.driver";
    private final static String webDriverPath ="E:\\chromedriver\\chromedriver.exe";
 
    public static void main(String[] args) throws InterruptedException {
        System.setProperty(webDriver, webDriverPath);
        WebDriver driver= new ChromeDriver();
        //有道翻译页面
        driver.get("https://fanyi.youdao.com/index.html#/");
        WebElement element=driver.findElement(By.id("js_fanyi_input"));
        //输入账户名
        element.sendKeys("admin");
        // 模拟回车键进行跳转(输入内容后)
        element.sendKeys(Keys.ENTER);
        //Ctrl + A 全选输入框中内容
        element.sendKeys(Keys.CONTROL, "A");
        //Ctrl + C 复制输入框中内容
        element.sendKeys(Keys.CONTROL, "C");
        //Ctrl + V 粘贴输入框中内容(第一粘贴会把原来的内容替换)
        element.sendKeys(Keys.CONTROL, "V");
        //Ctrl + V 粘贴输入框中内容
        element.sendKeys(Keys.CONTROL, "V");
        //Ctrl + V 粘贴输入框中内容
        element.sendKeys(Keys.CONTROL, "V");
    }
}

其他常见键盘操作:

操作描述
Keys.F1F1键
Keys.SPACE空格
Keys.TABTab键
Keys.ESCAPEESC键
Keys.ALTAlt键
Keys.SHIFTShift键
Keys.ARROW_DOWN向下箭头
Keys.ARROW_LEFT向左箭头
Keys.ARROW_RIGHT向右箭头
Keys.ARROW_UP向上箭头
Keys.BACK_SPACEBackspace建

组合键使用

        //组合键
        element.sendKeys(Keys.CONTROL,Keys.SHIFT, "A");

高频使用

//输入文本
element.sendKeys("洛阳泰山");

补充知识

键盘操作除了使用Selenium 控制键盘外还可以使用 java robot (java.awt包下)的控制键盘结合使用。

使用示例

通过 Robot 类实现发送键盘组合键

    /* 发送键盘组合键,模拟"全选 Ctrl+A ->复制 Ctrl+C ->粘贴 Ctrl+V"快捷键功能
     *         第 2 种方法: 通过 Robot 类实现
     * */
    @Parameters("baseUrl1")
    @Test
    public void RobotCtrlACV(String baseUrl1) throws InterruptedException, AWTException {
        driver.get(baseUrl1 + "/");
        WebElement inputBox = driver.findElement(By.xpath("//*[@id=\"query\"]"));
        inputBox.clear();
        inputBox.sendKeys("搜狗");

        Thread.sleep(2000);
        // 定义一个 Robot 对象
        Robot robot = new Robot();
        // 模拟 全选 Ctrl+A
        robot.keyPress(KeyEvent.VK_CONTROL);  // 按下 Ctrl 键
        robot.keyPress(KeyEvent.VK_A);  // 按下字母键,这里大小写均可
        robot.keyRelease(KeyEvent.VK_A);  // 释放字母键,这里大小写均可
        robot.keyRelease(KeyEvent.VK_CONTROL);  // 释放 Ctrl 键
        // 模拟 复制 Ctrl+C
        robot.keyPress(KeyEvent.VK_CONTROL);  // 按下 Ctrl 键
        robot.keyPress(KeyEvent.VK_C);  // 按下字母键,这里大小写均可
        robot.keyRelease(KeyEvent.VK_C);  // 释放字母键,这里大小写均可
        robot.keyRelease(KeyEvent.VK_CONTROL);  // 释放 Ctrl 键

        Thread.sleep(2000);

        driver.navigate().to("http://www.baidu.com" + "/");
        inputBox = driver.findElement(By.xpath("//*[@id=\"kw\"]"));
        inputBox.clear();

        // 模拟 粘贴 Ctrl+V
        robot.keyPress(KeyEvent.VK_CONTROL);  // 按下 Ctrl 键
        robot.keyPress(KeyEvent.VK_V);  // 按下字母键,这里大小写均可
        robot.keyRelease(KeyEvent.VK_V);  // 释放字母键,这里大小写均可
        robot.keyRelease(KeyEvent.VK_CONTROL);  // 释放 Ctrl 键

        Thread.sleep(2000);
    }

当然也可以通过 Actions 类实现

  /* 发送键盘组合键,模拟"全选 Ctrl+A ->复制 Ctrl+C ->粘贴 Ctrl+V"快捷键功能
    *         第 1 种方法: 通过 Actions 类实现
    * */
    @Parameters("baseUrl1")
    @Test
    public void ActionsCtrlACV(String baseUrl1) throws InterruptedException, AWTException {
        driver.get(baseUrl1 + "/");
        WebElement inputBox = driver.findElement(By.xpath("//*[@id=\"query\"]"));
        inputBox.clear();
        inputBox.sendKeys("搜狗");

        Thread.sleep(2000);
        // 定义一个 Actions 对象
        Actions action = new Actions(driver);
        // 模拟 全选 Ctrl+A
        action.keyDown(Keys.CONTROL);  // 按下 Ctrl 键
        action.sendKeys(Keys.chord("A"));  // 按下字母键,这里大小写均可
        action.keyUp(Keys.CONTROL);  // 释放 Ctrl 键
        // 模拟 复制 Ctrl+C
        action.keyDown(Keys.CONTROL);  // 按下 Ctrl 键
        action.sendKeys(Keys.chord("c"));  // 按下字母键,这里大小写均可
        action.keyUp(Keys.CONTROL);  // 释放 Ctrl 键
        // 这一步,必不可少,作用是使得以上组合键生效
        action.build().perform();

        Thread.sleep(2000);

        driver.navigate().to("http://www.baidu.com" + "/");
        inputBox = driver.findElement(By.xpath("//*[@id=\"kw\"]"));
        inputBox.clear();

        // 模拟 粘贴 Ctrl+V
        action.keyDown(Keys.CONTROL);  // 按下 Ctrl 键
        action.sendKeys(Keys.chord("v"));  // 按下字母键,这里大小写均可
        action.keyUp(Keys.CONTROL);  // 释放 Ctrl 键
        // 这一步,必不可少,作用是使得以上组合键生效
        action.build().perform();

        Thread.sleep(2000);
    }

到此这篇关于详解Java Selenium中的键盘控制操作的文章就介绍到这了,更多相关Java Selenium键盘内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • 基于Java快速实现一个简单版的HashMap详解

    发布:2023-04-12

    这篇文章主要为大家详细介绍了如何利用Java简单实现一个底层数据结构为数组 + 链表的HashMap,不考虑链表长度超过8个时变为红黑树的情况,需要的可以参考一下


  • 《Python编程:从入门到实践》课后习题及答案

    发布:2018-12-01

    这篇文章主要介绍了JavaScript简介,都是非常基础的内容,有需要的小伙伴参考下吧。


  • Java线程安全中的原子性浅析

    发布:2023-03-27

    这篇文章主要介绍了Java线程安全中的原子性,原子性是指一条线程在执行一系列程序指令操作时,该线程不可中断。一旦出现中断,那么就可能会导致程序执行前后的结果不一致


  • Java C++题解leetcode856括号的分数

    发布:2023-03-05

    这篇文章主要为大家介绍了Java C++题解leetcode856括号的分数实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • 手把手教你在eclipse创建第一个java web项目并运行

    发布:2023-03-27

    Eclipse是用来做开发的自由集成开发环境,这也是很多java程序员会使用的开发环境,所以可以使用eclipse创建javaweb项目,下面这篇文章主要给大家介绍了关于如何在eclipse创建第一个java web项目并运行的相关资料,需要的朋友可以参考下


  • JavaScript封装的常用工具类库bee.js用法详解【经典类库】

    发布:2022-07-07

    给网友们整理关于JavaScript的教程,这篇文章主要介绍了JavaScript封装的常用工具类库bee.js用法,结合实例形式详细分析了经典类库bee.js常见的手机、身份证、邮箱校验,以及字符串操作、四则运算、正则验证等相关操作的封装与使用


  • Java实现向Word文档添加文档属性

    发布:2023-04-22

    这篇文章主要介绍了Java实现向Word文档添加文档属性的相关资料,需要的朋友可以参考下


  • Java进阶宝典

    发布:2020-01-28

    这篇文章主要给大家分享介绍了这本Java进阶宝典里,是开发10年总结出来的,文中通过图文介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧


网友讨论