在自动化测试过程中,由于javascript的使用,我们常常需要点击一些鼠标经过显示的菜单等元素,这时需要触发该元素的鼠标经过事件。使用WebDriver有以下两种实现。
比如,要点击Add New菜单。但要先将鼠标指向Posts才会显示该菜单。
1. 使用Antions
public void moveToElement(WebDriver driver, By locator) {
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(locator)).perform();
}
2. 使用SendKey
public void moveToElement(WebDriver driver, By locator) {
driver.findElement(locator).sendKeys(Keys.DOWN);
}
具体实例:
public void AccessSite() throws InterruptedException{
System.setProperty("webdriver.chrome.driver", "E:\\WebDriver\\chromedriver.exe");
System.setProperty("webdriver.chrome.bin", "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://demo.opensourcecms.com/wordpress/wp-login.php");
Thread.sleep(1000);
driver.findElement(By.id("user_login")).sendKeys("admin");
driver.findElement(By.id("user_pass")).sendKeys("demo123");
driver.findElement(By.id("wp-submit")).click();
Thread.sleep(2000);
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.xpath("//li[@id='menu-posts']/a"))).perform();
Thread.sleep(2000);
driver.findElement(By.linkText("Add New")).click();
}