其实光看字面上的理解sendKeys这个api感觉只有输入字符这一个功能,其实这样理解是错误的其实这个api的真正作用是模拟键盘的操作(包含了输入字符),不过输入字符是其主要的功能,下面介绍一下其他的用法:
这里就直接上代码了
package org.coderinfo.demo; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class ApiSendKeys { private static final String URL = "file:///C:/user/Desktop/Selenium/operate.html"; public static void main(String[] args) { WebDriver driver = new ChromeDriver(); // create a chrome driver driver.manage().window().maximize(); // max size the chrome window driver.get(URL); // open URL with the chrome browser try { Thread.sleep(2000); // wait for page loading } catch (InterruptedException e) { e.printStackTrace(); } driver.findElement(By.id("UserName")).sendKeys("coderinfo"); // Get input element and input some words try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } driver.findElement(By.id("UserName")).sendKeys(Keys.chord(Keys.CONTROL + "a")); // Use sendKeys to select all the content try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } driver.findElement(By.id("UserName")).sendKeys(Keys.chord(Keys.CONTROL + "x")); // Use sendKeys to cut the content try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } driver.findElement(By.id("UserEmail")).sendKeys(Keys.chord(Keys.CONTROL + "v")); // Use sendKeys to copy the content try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } driver.quit(); // close webdriver } } |
相信如何模拟其他的快捷键就不用我一一列举了,我也没有试过太多,因为我就用过一次。
这里是测试的页面operate.html的源码:
<!DOCTYPE html> <html> <head> <title>Operate Element</title> </head> <body> <h3>Operate Element</h3> <form class="form-h"> <input type="text" class="in" id="UserName" /><br /> <input type="text" class="in" id="UserEmail" /><br /> <input type="submit" class="in" /> <input type="reset" class="in" /> </form> </body> </html> |
最新内容请见作者的GitHub页:http://qaseven.github.io/