Selenium Webdriver (Java) Bootstrap下拉菜单访问



我有一个网页,包含一个引导导航栏。这个导航栏有三个下拉菜单。

我想访问这些下拉菜单之一,并通过在Java中使用Selenium Webdriver从中选择一个选项。

问题是所有三个下拉菜单都有相同的HTML,并且没有唯一的标识符来区分它们。

谁能指导我如何访问这些下拉菜单在selenium webdriver-Java。下面是HTML代码片段

    <div aria-expanded="false" id="navbar" class="navbar-collapse collapse secondnav">
        <ul class="nav navbar-nav">
            <!-- <li><a href="#">Forms Grid</a>
            </li> -->
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Reports <span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">                    
                    <li><a href="#" id="abcd">Choice 1</a></li>                     
                    <li><a href="#" id="pqrst">Choice 2</a></li>                        
                    <li><a href="#" id="uvwxy">Choice 3</a></li>                                                                    
                </ul>
            </li>
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Admissions <span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">
                    <li><a id="admit123">Admit new guy </a></li>                            
                    <li><a href="enrollExisting">Enroll Existing admit </a></li>                            
                </ul>
            </li>               
            <li class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Findings<span class="caret"></span></a>
                <ul class="dropdown-menu" role="menu">              
                    <li class="dropdown-submenu"><a tabindex="-1" href="#">Samples</a>
                        <ul class="dropdown-menu">
                            <li><a href="#" tabindex="-1">Add</a>
                            </li>
                            <li><a href="#" tabindex="-1">Update</a>
                            </li>
                            <li><a href="#" tabindex="-1">Update Off Site</a>
                            </li>
                        </ul>
                    </li>

                </ul>
            </li>
        </ul>       
    </div>

对于初学者,您可以通过索引获得特定的下拉列表:

List<WebElement> menus = driver.findElements(By.cssSelector("div#navbar  ul li.dropdown"));
WebElement desiredMenu = menus.get(0);
desiredMenu.click();

然后,您将有多种方法来定位菜单选项。例如,通过文本:

WebElement choice1 = desiredMenu.findElement(By.linkText("Choice 1"));
choice1.click();

最新更新