web-dev-qa-db-fra.com

Sélénium: tester si l'élément contient du texte

Avec Selenium IDE, comment puis-je tester si le texte interne d'un élément contient une chaîne spécifique? Par exemple:

<p id="fred">abcde</p>
'id=fred' contains "bcd" = true)
18
Mark W

Le documentation Selenium-IDE est utile dans cette situation.

La commande que vous recherchez est assertText, le localisateur serait id=fred et le texte par exemple *bcd*.

23
Petr Janeček

Vous pouvez aussi utiliser:

assertElementPresent
css=p#fred:contains('bcd')
4
Aleh Douhi

Cela peut être fait avec un simple caractère générique:

verifyText
id="fred"
*bcd*

Voir Selenium IDE Doc

4
Mark W

Pouvez-vous utiliser jQuery si oui, essayez quelque chose comme

$("p#fred:contains('bcd')").css("text-decoration", "underline");
1
The Angry Saxon

Il semble que les expressions régulières pourraient fonctionner:

"The simplest character set is a character. The regular expression "the" contains three
character sets: "t," "h" and "e". It will match any line with the string "the" inside it.
This would also match the Word "other". "

(Depuis le site: http://www.grymoire.com/Unix/Regular.html )

Si vous utilisez Visual Studio, il existe une fonctionnalité pour évaluer les chaînes avec des expressions régulières de TOUS les types (ne contient pas seulement):

using System.Text.RegularExpressions;

Regex.IsMatch("YourInnerText", @"^[a-zA-Z]+$");

L'expression que j'ai publiée vérifiera si la chaîne contient UNIQUEMENT des lettres.

Selon mon lien, votre expression régulière serait alors "bcd" ou une chaîne que vous construisez à l'exécution. Ou:

Regex.IsMatch("YourInnerText", @"bcd");

(Quelque chose comme ça de toute façon)

J'espère que cela a aidé.

1