Webdriver-处理隐藏子菜单

上一篇 / 下一篇  2016-03-29 11:55:44 / 个人分类:Selenium

我的在系统经常遇到有子菜单的情况,但是子菜单的显示需要逐层的打开,我们在使用webdriver的时候如果不逐层的的打开,直接去打开下级菜单时,会报:element not visible错误,这个时候我们就需要在点击下级菜单的时候,把下级菜单显示出来,我们可以通过Actions的moveToElement方法将鼠标移到父菜单上已到达展开子菜单的效果,展开后就可以操作子菜单了,这个时候就不会包element not visible了


Java代码:
    /**
     *
     * @param menuParentNodeXpath-菜单的父节点xpath
     * @param menuName-一级菜单名称
     * @param menuTagName-一级菜单tagName
     * @param subMenuName-二级菜单名称
     * @param subMenuTagName-二级菜单tagName
     * @throws InterruptedException
     */
    public void openMenu(String menuParentNodeXpath,String menuName,String menuTagName,String subMenuName,String subMenuTagName) throws InterruptedException{
        List<WebElement> menus = driver.findElement(By.xpath(menuParentNodeXpath)).findElements(By.tagName(menuTagName));
        for(WebElement menu:menus){
            if (menu.getAttribute("textContent").equals(menuName)){
                List<WebElement> subMenus = driver.findElements(By.tagName(subMenuTagName));
               
                for(WebElement subMenu:subMenus){
                    if(subMenu.getAttribute("textContent").equals(subMenuName)){
                        Actions action = new Actions(driver);
                        action.moveToElement(menu).build().perform();
                        Thread.sleep(1000);
                        subMenu.click();
                        return;
                    }
                }
            }
        }
    }
   

TAG: element not visible 子菜单

 

评分:0

我来说两句

Open Toolbar