Селен с Java - Нужно нажать на кнопку, которая находится в <div><ul> <li>? - PullRequest
0 голосов
/ 14 июня 2019

Мне нужно получить клик по кнопке, которая находится в тегах <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 голосов
/ 25 июня 2019

Вы можете найти элемент, подобный этому

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

Пожалуйста, попробуйте с приведенным выше кодом и дайте мне знать

0 голосов
/ 14 июня 2019

Отличная помощь всем!

Это сработало:

wait.until (ExpectedConditions.frameToBeAvailableAndSwitchToIt ( "ifrUserTools")); wait.until (ExpectedConditions.elementToBeClickable (By.cssSelector ( "[HREF * = 'Search.mvc'] [класс * = 'увеличить']"))); WebElement searchButton = driver.findElement (By.cssSelector ("[href * = 'Search.mvc'] [class * = 'magnify']")); searchButton.click ();

0 голосов
/ 14 июня 2019

Используйте WebdriverWait и elementToBeClickable и следующий 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();

Edit

Сначала переключитесь на iframe, затем используйте вышеуказанный код для доступа к элементу.

driver.switchTo().frame("ifrUserTools");
0 голосов
/ 14 июня 2019

Вот 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

0 голосов
/ 14 июня 2019
Селектор

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...