隐式菜单与展现菜单的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("进入菜单管理页面");

    }

}
相关文章
相关标签/搜索