Флажок Selenium, запускающий событие

0

У меня есть метод:

     public void clickCheckBox(int index) {
       List<WebElement> sizeList = getSizeList();
       WebElement checkbox = sizeList.get(index);
       Actions action = new Actions(driver);
       action.moveToElement(checkbox).click().build().perform();
 }

Этот метод принимает индекс списка флажков, а затем использует класс Actions, чтобы установить флажок. Я делаю это так, потому что страница, с которой я в настоящее время работаю, запускает событие, когда этот флажок установлен, поэтому просто установите флажок и нажмите "Не работает" (событие не срабатывает).

Мой выше код не проверяет флажок, и я не уверен, почему. Любое понимание было бы здорово. Пожалуйста, дайте мне знать, если я не предоставил достаточную информацию.

РЕДАКТИРОВАТЬ:

Вот мой метод получения размера списка:

     public List<WebElement> getSizeList(){
         List<WebElement> sizeList = body.findElement(By.cssSelector("ul")).findElements(By.cssSelector("li"));
         if(null==sizeList) {
           // oops, couldn't find the element
           LOGGER.error("Failed to locate the 'li' element for the action button");
           return Collections.emptyList();
         }
         return sizeList;
 } 

Вот немного HTML:

  <ul>          
  <li>
    <input type="checkbox">
    <a href="www.url.com" title="8">8</a>
<span class="count">(1,037)</span>
</li>


  <li>
    <input type="checkbox">
    <a href="www.url.com" title="10">10</a>
<span class="count">(1,047)</span>
</li> ...
  • 1
    Добавление HTML-кода для контрольного списка и кода, который получает контрольный список, поможет нам помочь вам. Одна вещь, которую вы можете попробовать, это распечатать размер списка, чтобы убедиться, что он больше 0.
  • 0
    Отредактировал мой вопрос с этими запросами @Richard
Теги:
selenium
selenium-webdriver
checkbox

1 ответ

1
Лучший ответ

Нахождение элемента до li, но не ввода (флажок)

//get the checkboxes size with below command

List<WebElement> sizeList = body.findElements(By.cssSelector("ul>li>input"));

or

List<WebElement> sizeList = body.findElements(By.cssSelector("input[type='checkbox']"));

Теперь выполняйте операции с указанным выше списком.

for(WebElement eachChkBox : sizeList) {
     new Actions(driver).click(eachChkBox).perform(); 
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню