Selenium - 如何找到没有它的对象和Id或名称?

时间:2015-07-29 13:12:59

标签: css selenium selenium-webdriver automation

我最近开始使用Selenium Webdriver进行自动化。我尝试自动化的网页是CSS。所以我试图实现的是点击下拉菜单" Admin"然后会显示一个列表。并选择其中一个选项" User Access"从该名单中。

现在在页面源代码中,这个特定的下拉列表"管理员"没有ID或名称。以下是供参考的代码:

<li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
        Admin<span class="caret"></span>
    </a>
    <ul class="dropdown-menu" role="menu">

        <li>
            <a href="usersAdmin">
                Users Admin
            </a>
        </li>

        <li>
            <a href="userAccess">
                User Access Admin
            </a>
        </li>

        <li>
            <a href="#">
                Email Object Admin
            </a>
        </li>

    </ul>
</li>

现在我想从下拉列表中选择用户访问管理员值?我试图使用findElement方法来识别该对象,但由于它没有ID或名称,我无法成功完成。这样做的合适方法是什么? 我使用Java进行编码。

3 个答案:

答案 0 :(得分:2)

你可以这样做:

<强>爪哇

WebElement element = driver.findElement(By.linkText("Users Admin"));

<强> C#

var element = driver.FindElement(By.Name("Users Admin"));

<强>的Python

from selenium.webdriver.common.by import By
element = driver.find_element(By.NAME, "Users Admin")

答案 1 :(得分:1)

以下css是否足够?

a[href='userAccess']

答案 2 :(得分:1)

如果您要打开下拉列表并选择“用户管理”选项,请尝试以下操作:

// find the dropdown and open it
driver.findElement(By.linkText("Admin")).click();

// find the interesting element and select it via a click
driver.findElement(By.linkText("Users Admin")).click();