隱式菜單與展現菜單的Selenium頁面定位元素

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

    }

}
相關文章
相關標籤/搜索