欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Java Selenium中的鍵盤(pán)控制操作

 更新時(shí)間:2023年01月06日 15:21:00   作者:洛陽(yáng)泰山  
這篇文章主要為大家介紹了如何使用java代碼利用Selenium 控制瀏覽器中需要用到的鍵盤(pán)操作。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

簡(jiǎn)介

本文主要簡(jiǎn)介如何使用java代碼利用Selenium 控制瀏覽器中需要用到的鍵盤(pán)操作。

鍵盤(pán)控制

webdriver 中 Keys 類(lèi)幾乎提供了鍵盤(pán)上的所有按鍵方法,我們可以使用 send_keys + Keys 實(shí)現(xiàn)輸出鍵盤(pán)上的組合按鍵如 “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();
        //有道翻譯頁(yè)面
        driver.get("https://fanyi.youdao.com/index.html#/");
        WebElement element=driver.findElement(By.id("js_fanyi_input"));
        //輸入賬戶(hù)名
        element.sendKeys("admin");
        // 模擬回車(chē)鍵進(jìn)行跳轉(zhuǎn)(輸入內(nèi)容后)
        element.sendKeys(Keys.ENTER);
        //Ctrl + A 全選輸入框中內(nèi)容
        element.sendKeys(Keys.CONTROL, "A");
        //Ctrl + C 復(fù)制輸入框中內(nèi)容
        element.sendKeys(Keys.CONTROL, "C");
        //Ctrl + V 粘貼輸入框中內(nèi)容(第一粘貼會(huì)把原來(lái)的內(nèi)容替換)
        element.sendKeys(Keys.CONTROL, "V");
        //Ctrl + V 粘貼輸入框中內(nèi)容
        element.sendKeys(Keys.CONTROL, "V");
        //Ctrl + V 粘貼輸入框中內(nèi)容
        element.sendKeys(Keys.CONTROL, "V");
    }
}

其他常見(jiàn)鍵盤(pán)操作:

操作描述
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("洛陽(yáng)泰山");

補(bǔ)充知識(shí)

鍵盤(pán)操作除了使用Selenium 控制鍵盤(pán)外還可以使用 java robot (java.awt包下)的控制鍵盤(pán)結(jié)合使用。

使用示例

通過(guò) Robot 類(lèi)實(shí)現(xiàn)發(fā)送鍵盤(pán)組合鍵

    /* 發(fā)送鍵盤(pán)組合鍵,模擬"全選 Ctrl+A ->復(fù)制 Ctrl+C ->粘貼 Ctrl+V"快捷鍵功能
     *         第 2 種方法: 通過(guò) Robot 類(lèi)實(shí)現(xiàn)
     * */
    @Parameters("baseUrl1")
    @Test
    public void RobotCtrlACV(String baseUrl1) throws InterruptedException, AWTException {
        driver.get(baseUrl1 + "/");
        WebElement inputBox = driver.findElement(By.xpath("http://*[@id=\"query\"]"));
        inputBox.clear();
        inputBox.sendKeys("搜狗");

        Thread.sleep(2000);
        // 定義一個(gè) Robot 對(duì)象
        Robot robot = new Robot();
        // 模擬 全選 Ctrl+A
        robot.keyPress(KeyEvent.VK_CONTROL);  // 按下 Ctrl 鍵
        robot.keyPress(KeyEvent.VK_A);  // 按下字母鍵,這里大小寫(xiě)均可
        robot.keyRelease(KeyEvent.VK_A);  // 釋放字母鍵,這里大小寫(xiě)均可
        robot.keyRelease(KeyEvent.VK_CONTROL);  // 釋放 Ctrl 鍵
        // 模擬 復(fù)制 Ctrl+C
        robot.keyPress(KeyEvent.VK_CONTROL);  // 按下 Ctrl 鍵
        robot.keyPress(KeyEvent.VK_C);  // 按下字母鍵,這里大小寫(xiě)均可
        robot.keyRelease(KeyEvent.VK_C);  // 釋放字母鍵,這里大小寫(xiě)均可
        robot.keyRelease(KeyEvent.VK_CONTROL);  // 釋放 Ctrl 鍵

        Thread.sleep(2000);

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

        // 模擬 粘貼 Ctrl+V
        robot.keyPress(KeyEvent.VK_CONTROL);  // 按下 Ctrl 鍵
        robot.keyPress(KeyEvent.VK_V);  // 按下字母鍵,這里大小寫(xiě)均可
        robot.keyRelease(KeyEvent.VK_V);  // 釋放字母鍵,這里大小寫(xiě)均可
        robot.keyRelease(KeyEvent.VK_CONTROL);  // 釋放 Ctrl 鍵

        Thread.sleep(2000);
    }

當(dāng)然也可以通過(guò) Actions 類(lèi)實(shí)現(xiàn)

  /* 發(fā)送鍵盤(pán)組合鍵,模擬"全選 Ctrl+A ->復(fù)制 Ctrl+C ->粘貼 Ctrl+V"快捷鍵功能
    *         第 1 種方法: 通過(guò) Actions 類(lèi)實(shí)現(xiàn)
    * */
    @Parameters("baseUrl1")
    @Test
    public void ActionsCtrlACV(String baseUrl1) throws InterruptedException, AWTException {
        driver.get(baseUrl1 + "/");
        WebElement inputBox = driver.findElement(By.xpath("http://*[@id=\"query\"]"));
        inputBox.clear();
        inputBox.sendKeys("搜狗");

        Thread.sleep(2000);
        // 定義一個(gè) Actions 對(duì)象
        Actions action = new Actions(driver);
        // 模擬 全選 Ctrl+A
        action.keyDown(Keys.CONTROL);  // 按下 Ctrl 鍵
        action.sendKeys(Keys.chord("A"));  // 按下字母鍵,這里大小寫(xiě)均可
        action.keyUp(Keys.CONTROL);  // 釋放 Ctrl 鍵
        // 模擬 復(fù)制 Ctrl+C
        action.keyDown(Keys.CONTROL);  // 按下 Ctrl 鍵
        action.sendKeys(Keys.chord("c"));  // 按下字母鍵,這里大小寫(xiě)均可
        action.keyUp(Keys.CONTROL);  // 釋放 Ctrl 鍵
        // 這一步,必不可少,作用是使得以上組合鍵生效
        action.build().perform();

        Thread.sleep(2000);

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

        // 模擬 粘貼 Ctrl+V
        action.keyDown(Keys.CONTROL);  // 按下 Ctrl 鍵
        action.sendKeys(Keys.chord("v"));  // 按下字母鍵,這里大小寫(xiě)均可
        action.keyUp(Keys.CONTROL);  // 釋放 Ctrl 鍵
        // 這一步,必不可少,作用是使得以上組合鍵生效
        action.build().perform();

        Thread.sleep(2000);
    }

到此這篇關(guān)于詳解Java Selenium中的鍵盤(pán)控制操作的文章就介紹到這了,更多相關(guān)Java Selenium鍵盤(pán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java利用pdfbox+poi往pdf插入數(shù)據(jù)

    java利用pdfbox+poi往pdf插入數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于java利用pdfbox+poi如何往pdf插入數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • SpringBoot?項(xiàng)目中創(chuàng)建線(xiàn)程池

    SpringBoot?項(xiàng)目中創(chuàng)建線(xiàn)程池

    這篇文章主要介紹了SpringBoot?項(xiàng)目中創(chuàng)建線(xiàn)程池,文章基于Spring?Boot項(xiàng)目創(chuàng)建線(xiàn)程池ThreadPoolExecutor,需要的小伙伴可以參考一下
    2022-04-04
  • springmvc后臺(tái)基于@ModelAttribute獲取表單提交的數(shù)據(jù)

    springmvc后臺(tái)基于@ModelAttribute獲取表單提交的數(shù)據(jù)

    這篇文章主要介紹了springmvc后臺(tái)基于@ModelAttribute獲取表單提交的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java 注冊(cè)時(shí)發(fā)送激活郵件和激活的實(shí)現(xiàn)示例

    Java 注冊(cè)時(shí)發(fā)送激活郵件和激活的實(shí)現(xiàn)示例

    這篇文章主要介紹了Java 注冊(cè)時(shí)發(fā)送激活郵件和激活的實(shí)現(xiàn)示例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Spring一步到位精通攔截器

    Spring一步到位精通攔截器

    攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行。本文將詳細(xì)講講SpringMVC中攔截器的概念及入門(mén)案例,感興趣的可以嘗試一下
    2023-01-01
  • Java實(shí)現(xiàn)合并多個(gè)升序鏈表

    Java實(shí)現(xiàn)合并多個(gè)升序鏈表

    本文主要介紹了Java實(shí)現(xiàn)合并多個(gè)升序鏈表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Spring中的攔截器HandlerInterceptor詳細(xì)解析

    Spring中的攔截器HandlerInterceptor詳細(xì)解析

    這篇文章主要介紹了Spring中的攔截器HandlerInterceptor詳細(xì)解析,HandlerInterceptor 是 Spring 框架提供的一個(gè)攔截器接口,用于在請(qǐng)求處理過(guò)程中攔截和處理請(qǐng)求,需要的朋友可以參考下
    2024-01-01
  • spring整合redis緩存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用

    spring整合redis緩存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用

    本篇文章主要介紹了spring整合redis緩存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-04-04
  • socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問(wèn)題解析

    socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問(wèn)題解析

    這篇文章主要為大家介紹了socket編程時(shí)的發(fā)送與接收數(shù)據(jù)時(shí)的問(wèn)題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Springboot如何利用攔截器攔截請(qǐng)求信息收集到日志詳解

    Springboot如何利用攔截器攔截請(qǐng)求信息收集到日志詳解

    一些系統(tǒng)經(jīng)常需要關(guān)注用戶(hù)請(qǐng)求的具體信息,如用戶(hù)信息、請(qǐng)求參數(shù)、響應(yīng)結(jié)果等等,在SpringBoot應(yīng)用中可通過(guò)攔截器的方式統(tǒng)一處理,下面這篇文章主要給大家介紹了關(guān)于Springboot如何利用攔截器攔截請(qǐng)求信息收集到日志的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評(píng)論