selenium---键盘事件
这些是我们经常使用的键盘操作方法
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("写完了哈");
}
}
- 普通键盘模拟
对于普通键盘,使用 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) 来释放按键。
- 修饰键
对于修饰键,使用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();
}