在实际测试项目中,会出现隐式菜单和展现菜单的效果。以下:css
点击“菜单用户权限”,才会展现其下方的子菜单,以下:java
页面源码以下:app
由于菜单相关的操做都要打开菜单管理页面的,因此就建立一个类来方便菜单相关case调用。ide
从点击“菜单用户权限”开始到打开“菜单管理”页面,处理方法,代码以下:测试
package com.selenium.yan; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class YiiOpenMenu { public void openmenu(WebDriver driver){ //等待“菜单用户权限”文字连接出现 (new WebDriverWait(driver,40)).until(ExpectedConditions.elementToBeClickable(By.linkText("菜单用户权限"))); //点击"菜单用户权限"菜单 List<WebElement> treelis = driver.findElements(By.cssSelector(".sidebar-menu .treeview")); WebElement li = treelis.get(0); WebElement a = li.findElement(By.cssSelector("a")); a.click(); //点击"菜单管理"菜单 List<WebElement> menulis = driver.findElements(By.cssSelector(".treeview-menu li")); WebElement menuli = menulis.get(0); WebElement menua = menuli.findElement(By.cssSelector("a")); menua.click(); //等待进入菜单管理页面 WebDriverWait menuwait = new WebDriverWait(driver,40); WebElement menuopenNode = menuwait.until(new ExpectedCondition<WebElement>(){ @Override public WebElement apply(WebDriver d) { WebElement menulastProject = driver.findElement(By.cssSelector("#admin-module-search-form")); return menulastProject; }}); System.out.println("进入菜单管理页面"); } }