L'ajout de variable Java pour xpath
Est-il possible d'ajouter un sens Java variable de Chaîne à un xpath-expression? Voici un code pour le rendre clair:
String newUser = "NewUser123";
driver.findElement(By.xpath("//td[normalize-space(text())=**newUser**]/a")).click();
Xpath devrait travailler avec la variable newUser, mais je ne sais pas comment.
- Double Possible de Java - y Compris les variables dans les chaînes de caractères?
- Pourquoi les votes contre? Ses une bonne question!
Vous devez vous connecter pour publier un commentaire.
Oui, lorsque vous choisissez de Java en tant que votre langage de programmation, tout en travaillant avec le sélénium, vous pouvez effectuer toutes les choses qui sont logiquement possible en Java.
Prendre votre exemple, xpath est une fonction qui prend en arguments de la chaîne. Donc, Comme en Java, nous concaténer plusieurs chaînes de caractères à l'aide de
+
. vous pouvez faire la même chose ici.Dans des situations similaires, je vais extraire la recherche d'une constante dans la classe, et l'utilisation de la Chaîne.format de l'utilitaire pour l'insertion de la variable(s) où j'en ai besoin. Notez l'utilisation de %s dans l'exemple de la constante USER_XPATH ci-dessous.
Je pense que c'est mieux pour la lisibilité et la maintenance de la ligne de concaténation option, mais les deux vont atteindre l'objectif.
Ensuite, vous pouvez utiliser des chaînes de caractères.format à l'insertion de la variable que vous voulez:
%s
doit figurer entre guillemets (simples ou doubles). Sinon, il ne fonctionne pas. Je veux dire qu'il doit êtreprivate static final USER_XPATH ="//td[normalize-space(text())='%s']/a";
Vous pouvez essayer le code suivant:
Dans le cas où si ses un nombre dans une boucle de table elle peut être écrite comme
Chaîne sCol = "1";
driver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div[2]/article/div/table/tbody/tr["+sRow+"]/td["+sCol+"]")).getText();
Traiter le xpath comme n'importe quel autre de concaténation de chaîne ou d'interpolation de vous le faire en Java