Как выбрать элемент, используя селен, который не содержит определенного класса - PullRequest
0 голосов
/ 26 июня 2018

У меня следующий HTML-код.

<ul class="options">
    <li class="first popover-options ">data</li>
    <li class="first popover-options disabled">data2</li>
    <li class="first popover-options ">data3</li>
</ul>

Мне нужно выбрать элемент с class = "first popover-options", то есть он не должен содержать отключен.Как это сделать с помощью селена в Java?

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Вы можете попробовать этот код :

List<WebElement> ListEle=  driver.findElements(By.cssSelector("li.first popover-options"));
for (WebElement tempEle : ListEle) {
    if(tempEle.getText().contains("Data"))
     {
       tempEle.click();
     }    
   }

Обратите внимание, что он выберет Данные из выпадающего списка, если вы хотите выбрать любой другой элемент из выпадающего, вы можете иметьэто путем замены кода на этом уровне: tempEle.getText().contains("Data")

0 голосов
/ 27 июня 2018

В соответствии с вашим вопросом для идентификации любого элемента с class="first popover-options", который не должен содержать отключенных , согласно предоставленному вами HTML, вы можете создать Список элементов, соответствующихкритерии, использующие одно из следующих решений:

  • Использование cssSelector :

    for (WebElement element:driver.findElements(By.cssSelector("ul.options>li.first.popover-options:not(.disabled)"))) 
    {
        //perform any action with the elements from the list
    }
    
  • Использование xpath:

    for (WebElement element:driver.findElements(By.xpath("//ul[@class='options']//li[@class='first popover-options']"))) 
    {
        //perform any action with the elements from the list
    }
    
0 голосов
/ 26 июня 2018

Вы можете выбрать несколько элементов, используя LIST, а затем выбрать операцию с выбранными элементами.

Пример кода такой:

List<WebElement> ListEle=  driver.findElements(By.xpath("//ul[@class='options']//li[@class='first popover-options']"));
for (WebElement tempEle : ListEle) {
    if(conditions)
     {
       //statemnets
       Break;
     }    
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...