使用Java的Selenium-是否需要单击<div> <ul> <li>中的按钮?

时间:2019-06-14 14:46:45

标签: java selenium

我需要点击位于<div><ul><li>标签中的按钮。 我需要单击类别为class="icon-link exp-icon-magnify"

的第三个列表
  <div class="navbar navbar-blue"> 
    <ul class="nav navbar-nav ">
      <li class="disabled"> 
        <a title="Wachten op Melding" href="#" class="icon-link exp-icon-bell" 
            data-toggle="tooltip" data-placement="left"> 
        </a>
      </li             
      <li class="divider"></li>             
      <li> <a title="Voer zoekactie uit" 
           href="/collections/toolbar/Search.mvc" class="icon-link exp-icon- 
           magnify" data-toggle="tooltip" data-placement="left"> 
           </a> 
      </li>

试图通过xpath和cssSelector定位它们,但是它们没有起作用。 有人可以帮我吗?

5 个答案:

答案 0 :(得分:0)

css选择器将是:

a[title='Voer zoekactie uit'][href*='Search.mvc'][class*='magnify']

尝试在代码中添加显式等待以提高稳定性。

WebDriverWait wait = new WebDriverWait(driver,10);
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[title='Voer Zoekactie uit'][href*='Search.mvc'][class*='magnify']"))); 
button.click();

答案 1 :(得分:0)

使用WebdriverWaitelementToBeClickable以及以下xpath单击元素。

WebDriverWait wait=new WebDriverWait(driver,40);
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='navbar navbar-blue']//ul[contains(@class,'nav navbar-nav')]//li//a[@class='icon-link exp-icon-bell'][@title='Wachten op Melding']"))).click();

如果您想使用cssselector,请尝试一下。

WebDriverWait wait=new WebDriverWait(driver,40);
            wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.navbar.navbar-blue ul.nav.navbar-nav li.disabled a.icon-link.exp-icon-bell[title='Wachten op Melding']"))).click();

编辑

首先切换到iframe,然后使用上面的代码访问元素。

driver.switchTo().frame("ifrUserTools");

答案 2 :(得分:0)

这是CSS。

a.icon-link.exp-icon-.magnify

enter image description here

如果要在下面包括层次结构检查。

div.navbar.navbar-blue  ul a.icon-link.exp-icon-.magnify

enter image description here

答案 3 :(得分:0)

完美帮助大家!

这是可行的:

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(“ ifrUserTools”));             wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(“ [href * ='Search.mvc'] [class * ='magnify']”))));             WebElement searchButton = driver.findElement(By.cssSelector(“ [href * ='Search.mvc'] [class * ='magnify']”)));             searchButton.click();

答案 4 :(得分:0)

您可以找到这样的元素

By.xpath(""//ul[@class='navbar-nav'//li[3]]");

请尝试使用上面的代码,让我知道