Как заставить Selenium выбрать значение в выпадающем списке <ul>? - PullRequest
0 голосов
/ 10 ноября 2019

Мне нужно написать автоматический тест для веб-страницы на работе, тест должен выбрать хотя бы одно значение из выпадающего списка, который был создан с тегом. Изменение HTML не является хорошим вариантом, потому что я не могу изменить внешний вид веб-страницы.

Ниже приведен пример соответствующего HTML. Это для выпадающего меню с надписью «Самопроверка», и двумя вариантами являются ИСТИНА и ЛОЖЬ. Например, как я могу использовать Selenium для автоматического выбора опции ИСТИНА? Класс Select не работает.

<div class="btn-group btn-input btn-group-sm input-group input-group-sm form-group">
   <span class="input-group-addon">Self Test</span>
   <button id="Self Test" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
   <span data-bind="text: config():selfTest"></span><span class="caret"></span>
   </button>
   <ul id="selfTestDropDown" class="dropdown-menu" role="menu">
      <li role="presentation" data-bind="if: 0 === booleanOptions().length">
         <a role="menuitem" href="#" class="disableLink" data-bind="click: function() {}">No Data</a>
      </li>
      <!-- ko foreach: booleanOptions() -->
      <li role="presentation"><a role="menuitem" href="#" data-bind="text: $data, click: function(){config.selfTest($data);}">
         </a>
      </li>
   </ul>
</div>

1 Ответ

0 голосов
/ 10 ноября 2019

В этом случае вы можете нажать / навести курсор на кнопку id = "Self Test" в зависимости от функциональности страницы, а затем выбрать нужный вариант. потому что он не является частью тега выбора, поэтому мы не можем использовать традиционный класс выбора опции селена.

Так что это будет выглядеть примерно так:

driver.findElement(By.id("Self Test")).click();
driver.findElement(By.id("selfTestDropDown").click();

, затем найдите элемент, какой вы хотите...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...