在實際測試項目中,會出現隱式菜單和展現菜單的效果。以下: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("進入菜單管理頁面"); } }