2017年01月17日 17:08:25

阅读数:2044
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;

public class selenium_keyboard_action {
/*Keys类提供了键盘的相关方法,sendKeys模拟键盘输入,可以输入键盘上的按键,也可以模拟组合键*/
WebDriver driver=new FirefoxDriver();
Actions action=new Actions(driver);
public static void main(String[] args) throws Exception {
selenium_keyboard_action ska=new selenium_keyboard_action();
ska.init();
//ska.test1();
//ska.test2();
ska.robotUse();
}
public void init(){
driver.get("http://www.baidu.com/");
}
public void test1(){
WebElement element=driver.findElement(By.id("kw"));
element.sendKeys("test");//A向百度搜索框中输入test
element.sendKeys(Keys.BACK_SPACE);//删除最后一个t
element.sendKeys(Keys.SPACE);//空格键
element.sendKeys("ting");//输入ting
element.sendKeys(Keys.CONTROL,"a");//ctrl+a
element.sendKeys(Keys.CONTROL,"x");//ctrl+x
element.sendKeys(Keys.CONTROL,"v");//ctrlv
element.sendKeys(Keys.ENTER);//ctrl+a
}
public void test2() throws Exception{//对右键菜单使用快捷键
action.contextClick(driver.findElement(By.id("su"))).perform();
Thread.sleep(2000);
//action.sendKeys("v").perform();//模拟键盘输入v
action.sendKeys(Keys.ARROW_DOWN).perform();//通过键盘按3次向下的箭头
action.sendKeys(Keys.ARROW_DOWN).perform();
action.sendKeys(Keys.ARROW_DOWN).perform();
action.sendKeys(Keys.ENTER).perform();//按回车键
}
public void robotUse() throws Exception{//使用robot模拟鼠标键盘的操作
action.moveToElement(driver.findElement(By.linkText("登录")));
try {
Thread.sleep(2000);
Robot r=new Robot();
//r.mousePress(InputEvent.BUTTON1_MASK);//按下鼠标左键
//r.mouseRelease(InputEvent.BUTTON1_MASK);
r.keyPress(KeyEvent.VK_DOWN);//在下拉菜单中点击一次键盘的向下键
r.keyRelease(KeyEvent.VK_DOWN);

r.keyPress(KeyEvent.VK_ENTER);//按下回车键
r.keyRelease(KeyEvent.VK_ENTER);//释放回车键
} catch (AWTException e) {
e.printStackTrace();
}
}
}

最新文章

  1. C#高级编程笔记 Day 7, 2016年9月 19日 (泛型)
  2. 【leetcode】Unique Binary Search Trees (#96)
  3. 25套用于 Web UI 设计的免费 PSD 网页元素模板
  4. UNITY3D中涉及的一些数学知识
  5. javascript表单验证
  6. Oracle中的数据类型和数据类型之间的转换
  7. CentOS安装rpm包时error:Failed dependencies
  8. Postgresql 存储过程调试 1
  9. Linux系统各发行版镜像下载(2)
  10. Kernel 4.9的BBR拥塞控制算法。
  11. Cocos2d-x3.1UserDefaule类具体解释
  12. BestCoder Round #75 1003 - King's Order
  13. .NET MVC学习之模型绑定
  14. MyBatis源码解读(1)——SqlSessionFactory
  15. android 开源收藏
  16. 643. Maximum Average Subarray
  17. 经典的java中return和finally问题!
  18. mybatis-plus的代码生成器
  19. My SQL随记 002 登陆
  20. C++泛型编程(2)--通过排序和查找元素理解迭代器

热门文章

  1. python高阶函数——返回函数(闭包)
  2. Linux - CentOS 7 安装 .Net Core 运行环境
  3. Java学习 1.1——(JVM介绍)Java为什么能够跨平台?
  4. PHP 是如何做垃圾回收的
  5. Vue+ElementUI的后台管理框架
  6. SSM框架之SpringMVC(6)异常处理及拦截器
  7. Chrome是老大,Firefox 是老二,Edge 不是老三
  8. 如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)
  9. phpMyAdmin开启IP地址登录
  10. CodeForces - 460C(二分+差分)