Comment nœud de recherche par texte exact match à l'aide de Xpath dans webdriver
J'ai besoin d'un peu d'aide concernant la recherche d'un texte exact à l'aide de xpath dans webDriver.
Supposons que j'ai le code html qui suit..
<html><body>
<table>
<tr>
<td><button>abcd</button></td>
<td><button>abc</button></td>
</tr>
</table>
</body></html>
Maintenant, je veux cliquer sur le bouton "abc"
J'ai utilisé xpath comme //button[contains(text(),'abc')]
mais il est toujours sur le bouton "abcd", car il contient le texte "abc". À cet égard, j'ai besoin d'un prédicat ou d'une autre procédure qui peut recherche exacte du texte au lieu de contenir du texte.
J'ai aussi essayé avec //button[matches(text(),'abc')]
, //button[matches($string,'abc')]
, //button[Text='abc')]
, //button[.='abc')]
et beaucoup d'autres, mais aucun de ces a travaillé à identifier les "abc" bouton.
Je ne sais pas si il y a un problème concernant mon xpath version que je ne suis pas au courant de la version. Mais je suis en utilisant la version 1.6 de java JDK.
Si mon scénario exact n'est pas l'exemple illustré, mais la même logique doit être appliquée.
Donc toute aide ou suggestion serait très appréciée.
- Je ne comprends pas...quel est le problème avec un equals recherche? ...
//button[text()='abc']
....? - ressemble le mal était
//button[Text='abc']
mais celui de droite est//button[Text()='abc']
(comme vous l'avez écrit) - Oui c'est tout à fait juste....il serait quelque chose comme l'Égal de recherche...//bouton[text()='abc'] ce xpath fonctionne correctement...merci beaucoup.
Vous devez vous connecter pour publier un commentaire.
Je voudrais utiliser la prochaine xpath
//button[text()='abc']
. Vous avez mentionnétext()
fonction, mais je ne suis pas sûr de la syntaxe est correcte. Aussi vous avez essayé d'utilisercontains()
-- il recherche partielle du texte et WebDriver obtient un premier élément trouvé. J'votre cas, il est<button>abcd</button>
boutonLe point avant l'opérateur d'égalité permettra de faire la comparaison. Un autre exemple est
/PROJECT[.="MyProject"]
de la xPath Java tutoriel.Essayer avec des extrémités-avec au lieu de les contient. Si les boutons n'ont pas de caractéristiques uniques, vous pouvez ajouter de la hiérarchie parent ainsi. Comme //table/tr/td[1].
normalize-space()
fonction sera de nettoyer votre texte à des fins de comparaison. Essayez//button[normalize-space(text())='abc']
Pour trouver l'élément "abcd", vous pouvez simplement utiliser:
Trouver 'abc' utiliser le normalize-space() fonction qui permet de nettoyer votre texte à des fins de comparaison.
Pour trouver l'élément
'abcd'
vous pouvez simplement utiliser:Pour trouver
'abc'
utiliser lenormalize-space()
fonction qui permet de nettoyer votre texte à des fins de comparaison.