2014-02-20 4 views
0

У меня есть метод:Селен Checkbox Срабатывание Случай

 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(); 
} 

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

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

EDIT:

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

 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. – Richard

+0

Отредактировал мой вопрос с этими запросами @Richard – cakes88

ответ

1

Ваших найти элемент до лития но не ввод (флажок)

//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(); 
} 
Смежные вопросы