Comment puis-je obtenir Xpath Compter dans selenium webdriver
Comment puis-je obtenir Xpath Compter dans Selenium WebDriver?
C'est ma page HTML
<tbody xmlns="http://www.w3.org/1999/xhtml">
<tr class="odd">
<td>1</td>
<td>Cash</td>
<td>
<input type="checkbox" id="p1" checked="checked" value="1" name="productAccess"/>
<input type="hidden" value="1" name="__checkbox_productAccess"/>
</td>
</tr>
<tr class="even">
<td>2</td>
<td>Saving</td>
<td>
<input type="checkbox" id="p2" checked="checked" value="2" name="productAccess"/>
<input type="hidden" value="2" name="__checkbox_productAccess"/>
</td>
</tr>
J'ai utilisé
int product_count = driver.findElements(By.xpath("//id('product')/x:tbody/x:tr[1]")).size();
Mais toujours, je suis mal xpath, quelqu'un peut-il m'aider?
- Qu'essayez-vous de compter, exactement? Qu'est-ce que la production prévue dans votre exemple?
- Je veux vérifier les cases à cocher,si je reçois case à cocher compte que je peux utiliser en boucle..je pense que c'est facile...la même façon que j'ai utilisé dans junit,mais voici mon Xpather ne fonctionne pas correctement 🙁
Vous devez vous connecter pour publier un commentaire.
La
id()
fonction doit mais la première chose dans l'expression pour qu'il fonctionne correctement.Aussi, je ne suis pas exactement sûr de ce que la spec dit à propos de l'espace de noms de prescripteurs - quand je l'ai essayé dans mon Firefox 24 (avec Firebug + Firepath), il n'a pas accepter ceux et cela a bien fonctionné sans eux.
Cela dit, votre XPath est toujours faux et ne correspond pas à la fois les cases à cocher. Il correspond à la première
tr
élément. Afin de faire correspondre les cases à cocher, essayezou trouver par Sélecteur CSS (qui est plus court et le plus rapide):
Tout ce que dit, si vous souhaitez simplement faire une boucle sur les cases à cocher, vous n'avez pas à les compter en premier lieu: (exemple Java)
MODIFIER à l'adresse des OP commentaires ci-dessous
Pas de problème.
C'est une expression XPath qui ne correspond qu'à la
<td>
éléments avec le texte que vous souhaitez obtenir. Littéralement, il correspond à "toutes les<td>
les nœuds qui sont des descendants de#product
et qui sont immédiatement suivie par une<td>
avec une case à cocher".Maintenant, vous pouvez tout simplement une boucle sur les éléments trouvés et invoquer
getText()
sur eux.Si vous allez continuer à utiliser WebDriver, vous allez bientôt découvrir que vous avez certainement besoin d'apprendre les sélecteurs CSS et/ou des expressions XPath (qui sont plus forts).
Il ya une tonne de tutoriels là-bas, je suis sûr que vous serez en mesure de trouver quelques-uns. Je vais donc simplement vous indiquer les specs qui sont, je pense, la ressource la plus utile:
Pour Vérifier la Taille
Liste de cases à cocher = pilote.findElements(Par.cssSelector("#produit > tbody input[type='checkbox']"));
int no_of_checkboxes = cases à cocher.size();