在自动化测试过程中,由于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();
- }