0

Je voudrais sélectionner toutes les cases à cocher dans une table, en utilisant la langue javascript dans Selenium webdriver. Je suis nouveau à Selenium et je ne peux pas trouver la bonne solution, donc je serais reconnaissant pour toute aide.Comment sélectionner toutes les cases à cocher avec Selenium-WebDriver avec javascript

PS. J'ai 10 rangées dans ma table.

Le html:

<tr role="row" class="odd"> 
    <td class="dt-row="0" dt-column="0"> 
    <span class="grid-select-row-span">   
     <label class="check">   
      <input type="checkbox" class="grid-select-row"> 
      <i></i>  
     </label> 
    </span> 
</tr> 
<tr role="row" class="even"> 
    <td data-dt-row="1" data-dt-column="0"> 
     <span class="grid-select-row-span">  
     <label class="check">   
      <input type="checkbox" class="grid-select-row"> 
       <i></i>  
     </label> 
     </span> 
    </td> 
</tr> 

Mon code de sélénium:

driver.findElements(By.css("grid-select-row")).then(function (elements) { 
    elements.forEach(function(element) { 
      console.log(elements.length); 
     if(!element.Selected) 
     { 
      driver.actions() . 
      mouseDown(element) . 
      click(element); 

      // element.click(); 
     } 
    });    
    }); 
+0

Je pense que la fonction pour sélectionner l'état est isSelected() dans webdriverio. CHeck ceci dehors - http://webdriver.io/api/state/isSelected.html et pour cliquer la case à cocher - http://webdriver.io/api/action/click.html. – Grasshopper

+0

Avez-vous des erreurs? – Andersson

+0

@Andersson non, je ne reçois aucune erreur, ni rien ne se passera:/ – JanP

Répondre

0

Pour pointer à l'élément avec une class vous devez utiliser le formulaire .className, mais pas seulement className, alors essayez ce sélecteur CSS à la place:

input.grid-select-row 
+0

Je l'ai essayé, mais il ne vérifie toujours pas les cases à cocher. – JanP

+0

Pourriez-vous essayer 'document.querySelector (" input.grid-select-row "). Click();' depuis la console du navigateur? Si cela fonctionne, vous devriez vérifier votre syntaxe de code – Andersson

+0

J'ai essayé et il a sélectionné la première case à cocher. J'ai aussi essayé jQuery dans la console du navigateur: $ ("input.grid-select-row"). Prop ("checked", true); et ça a bien marché comme je le voulais. Mais je ne peux pas comprendre comment le faire en sélénium. – JanP