Robot 模拟操作键盘 实现复制粘贴功能;

1.代码逻辑 :

  a.封装一个粘贴的方法体:setAndctrlVClipboardData(String string);参数string是需要粘贴的内容 ;

  b.声明一个StringSelection  stringSelection 对象来接受粘贴的内容;

  c.使用Toolkit 对象的setContents放需要粘贴的内容放入到粘贴板中;Toolkit.getDefaultToolkit().getSystemClipboad().setContents(contents, owner);

  d.在该方法中使用Robot来模拟键盘crtl+v的操作;

package testNGPractice;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import scr.comm.OpenBrowserInfo;

public class RobotTestDemo {
    public WebDriver driver ;
  @Test
  public void Test() {
      String url="http://www.sogou.com/";
      driver.navigate().to(url);
      WebDriverWait wait= new WebDriverWait(driver,10);
      wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("query")));
      setAndctrlVClipboardData("我的人生我做主!");
      pressTabKey();
      pressEnterKey();
      try{
      Thread.sleep(3000);
      }catch(InterruptedException e){
          e.getStackTrace();

      }
  }
  @BeforeMethod
  public void beforeMethod() {
     OpenBrowserInfo.IeDriver();
     driver = new InternetExplorerDriver();
  }

  @AfterMethod
  public void afterMethod() {
      driver.quit();
  }
  public void setAndctrlVClipboardData(String string){
     //声明一个StingSelection 对象,并使用String的参数完成实例化;
      StringSelection stringSelection = new StringSelection(string);
      //使用Toolkit对象的setContents将字符串放到粘贴板中 ;
      Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
      Robot robot = null ;
      try{
          robot = new Robot();
      }catch(AWTException e){
          System.out.println(e.getStackTrace());
      }//按下crtl v键 ;
      robot.keyPress(KeyEvent.VK_CONTROL);
      robot.keyPress(KeyEvent.VK_V);//释放crtl v 键
      robot.keyRelease(KeyEvent.VK_V);
      robot.keyRelease(KeyEvent.VK_CONTROL);
  }

  public void pressTabKey(){

      Robot robot=null ;
      try{
          robot = new  Robot();

      }catch(AWTException e){
          e.getStackTrace();
      }
      robot.keyPress(KeyEvent.VK_TAB);
      robot.keyRelease(KeyEvent.VK_TAB);
  }

  public void pressEnterKey(){
      Robot  robot= null ;
      try{
          robot = new Robot();

      }catch(AWTException e){
          e.getStackTrace();
      }
     robot.keyPress(KeyEvent.VK_ENTER);
     robot.keyRelease(KeyEvent.VK_ENTER);

  }

}
时间: 2024-11-07 02:21:02

Robot 模拟操作键盘 实现复制粘贴功能;的相关文章

仿复制粘贴功能,长按弹出tips的实现

方案分析: 方案一:监听长按事件弹出PopupWindow[可行,缺点布局是固定的,小语种下会出现菜单截断现象] 方案二:弹出ContextMenu[不可行,因为ContextMenu的菜单是上下排列] 方案三:通过hierarchyviewer.bat查看可知,Editor的复制粘贴功能用的是toolbar,利用此功能也可实现[可行,代码量大] 方案四:通过查看Editor源码分析可知,只需要实现ActionMode.CallBack2接口,setMode即可实现[可行,简单实现接口,再添加少

在CMD命令行和PowerShell中实现复制粘贴功能

在CMD命令行和PowerShell中实现复制粘贴功能 经常使用命令行或者PowerShell的朋友肯定会遇到这种情况:粘贴文本很简单,右键--选择粘贴即可,但是想要复制命令行或者PowerShell中的命令,倒是不知道怎么办了.其实只需要更改其属性. PS:PowerShell是基于任务的命令行外壳,这里和CMD命令行设置一样. 左键点击CMD处理程序左上角,选择属性.(或者按下Alt+空格). 选中快速编辑模式,点击确定. 这时,我们可以选择命令行中的文本了. 在新命令行中双击右键,即可实现

通过file读写功能实现文件复制粘贴功能

通过file读写功能实现文件复制粘贴功能 import java.io.*; public class Copy1M { public static void main(String arg[]) throws FileNotFoundException{ long begin = System.currentTimeMillis(); //记录程序开始事件 //**************************************获取文件属性***********************

Eclipse/MyEclipse中使用复制粘贴功能卡的解决办法

最近在MyEclipse中编辑代码时,使用快捷键进行复制粘贴,经常会导致编辑器短暂的停顿,光标不跟随,居然反应不过来,几近假死. 想来想去应该是编辑上的什么配置或者是IDE的什么功能导致,于是进入Preferences查找edit功能,进行一个个的测试,最后发现原来是代码的超链功能导致. 进入方法:Window -> Preferences -> General -> Editors -> Text Editors -> Hyperlinking 把超链的快捷键改为其他键比如

通过如何通过js实现复制粘贴功能

在ie中window.clipboardData(剪切板对象)是可以被获取,所以利用这个方法我们可以实现在IE当中复制粘贴的功能,demo如下! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>clipboard</title> <SCRIPT language=JavaS

demo:复制粘贴功能

复制链接功能,也是为了方便用户一键"复制",粘贴链接和文本到指定位置,在此,接着上一篇"demo:生成专属二维码link "来记录一键"复制"的实现. 相关插件 <!--布局: 按钮 输入框--> <a href="###" class="copylinkbtn" data-clipboard-target="#myLink">复制链接</a> <

JS input文本框禁用右键和复制粘贴功能的代码

代码如下: 1 function click(e) 2 { 3 if (document.all) 4 { 5 if (event.button==1||event.button==2||event.button==3) 6 { 7 oncontextmenu='return false'; 8 } 9 } 10 if (document.layers) 11 { 12 if (e.which == 3) 13 { 14 oncontextmenu='return false'; 15 } 16

js 实现复制粘贴功能

<!DOCTYPE html> <!-- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> --> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8

关于 angular + 页面复制粘贴功能

<div class="user-token-content" *ngIf="tokenMark"> <div class="token-card"> <div class="token-card-content" id="copyInput"> {{tokenContent}} </div> <div class="token-card-co