如何使用Selenium单击下拉菜单?

时间:2013-12-05 08:17:42

标签: selenium sonarqube

我试图将一些声纳规则集文件上传到多个声纳。

我想通过使用Selenium的web ui automator获得帮助。

我写了一些java代码,但它仍然没有用。

*添加评论

下面的代码适用于chrome驱动程序,但它不适用于safari驱动程序。 请告诉我如何修改代码以适用于多个浏览器。

这是我的代码

public void openQualityProfiles() {
    String linkTextSettings = "Settings";
    String cssSelector = ".dropdown-menu > ul > li > a";
    WebElement settings = waitForElement(By.linkText(linkTextSettings));
    settings.click();
    WebElement qualityProfiles = waitForElement(By.cssSelector(cssSelector));
    qualityProfiles.click();
}

public WebElement waitForElement(By locator) {
    WebElement target = null;
    WebDriverWait wait = new WebDriverWait(driver, 10);
    target = wait.until(ExpectedConditions.elementToBeClickable(locator));

    return target;
}

这是HTML

<a href="#" onclick="showDropdownMenu('admin-panel'); return false;" class="link-more">Settings</a>
<div id="admin-panel" class="dropdown-menu" style="display: none">
<ul>
<li><a href="/profiles">Quality Profiles</a></li>

<li><a href="/settings/index">Configuration</a></li>
<li><a href="/users">Security</a></li>
<li><a href="/backup">System</a></li> 

1 个答案:

答案 0 :(得分:0)

如果鼠标结束时出现子菜单,您可以使用:

new Actions(driver).moveToElement(yourMenu).build().perform();

或尝试点击

driver.findElement(By.className("link-more")).click();