我在java.I neead中使用selenium webdriver来点击菜单栏。我尝试了各种xpath并且没有工作。 <div class="menu-toggler sidebar-toggler"> </div>
是我要点击的元素。我使用了xpath /html/body/div/div[4]/div[2]/div/div[2]/div[2]/div[2]/div/div/div[1]/div[2]/a
。
我很好用任何可以帮助我点击菜单栏的选项。在这里使用automation.i使用ngwebdriver框架,所以如果可以使用ngwebdriver完成也很好。如果有人可以帮助我这将是非常好的。 / p>
<div class="ng-scope" ng-if="loggedIn">
<div class="page-spinner-bar hide" ng-spinner-bar="">
<div class="ng-scope" data-ng-controller="HeaderController">
<div class="page-header md-shadow-z-1-i navbar navbar-fixed-top ng-scope" data-ng-include="'app/main/tpl/header.html'">
<div class="page-header navbar navbar-fixed-top ng-scope">
<div class="page-header-inner">
<div class="page-logo">
<div class="menu-toggler sidebar-toggler"> </div>
</div>
<a class="menu-toggler responsive-toggler" data-target=".navbar-collapse" data-toggle="collapse" href="javascript:;"> </a>
<img class="small-logo" src="assets/img/logo_kart_small.gif">
<div class="top-menu">
</div>
</div>
</div>
</div>
答案 0 :(得分:0)
您应该尝试使用By.cssSelector()
,如下所示:
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement sideMenuButton = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div.menu-toggler.sidebar-toggler")));
Actions actions = new Actions(driver);
actions.moveToElement(sideMenuButton).click().perform();
已修改: - 如果上述情况不正常,请尝试使用JavascriptExecutor
执行点击操作: -
WebElement sideMenuButton = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("div.menu-toggler.sidebar-toggler")));
((JavascriptExecutor)driver).executeScript("arguments[0].click()", sideMenuButton);
答案 1 :(得分:0)
尝试使用具有内置xpath生成器的firefox&#39; firebug add。它是一个非常准确的发电机。即使我使用的是与firefox不同的浏览器,也解决了我的许多问题。