web-dev-qa-db-fra.com

Comment affirmer que des éléments contiennent du texte dans Selenium en utilisant JUnit

J'ai une page que je connais contient un certain texte à un certain xpath. Dans Firefox, j'utilise le code suivant pour affirmer que le texte est présent:

assertEquals("specific text", driver.findElement(By.xpath("xpath)).getText());

J'affirme l'étape 2 d'un formulaire et confirme qu'un certain attachement a été ajouté au formulaire. Toutefois, lorsque j'utilise le même code dans Chrome, la sortie affichée est différente mais contient le texte spécifique. Je reçois l'erreur suivante:

org.junit.ComparisonFailure: expected:<[]specific text> but was:<[C:\fakepath\]specific text>

Au lieu d'affirmer que quelque chose est vrai (exactement ce que je cherche), j'aimerais écrire quelque chose comme:

assert**Contains**("specific text", driver.findElement(By.xpath("xpath)).getText());

Le code ci-dessus ne fonctionne évidemment pas, mais je ne trouve pas comment le faire.

Utilisation d’Eclipse, Selenium WebDriver et Java

3
Hugo

Utilisation:

String actualString = driver.findElement(By.xpath("xpath")).getText();
assertTrue(actualString.contains("specific text"));

Vous pouvez également utiliser l'approche suivante, en utilisant assertEquals:

String s = "PREFIXspecific text";
assertEquals("specific text", s.substring(s.length()-"specific text".length()));

ignorer le préfixe indésirable de la chaîne.

12
ROMANIA_engineer

Deux méthodes assertEquals et assertTrue pourraient être utilisées. Voici l'usage

String actualString = driver.findElement(By.xpath("xpath")).getText();

String expectedString = "ExpectedString";

assertTrue(actualString.contains(expectedString));
0
Meenakshi

vous pouvez aussi utiliser ceci

Chaîne actualString = driver.findElement (By.xpath ("xpath")). GetText (); Assert.assertTrue (actualString.contains ("texte spécifique"));

0
Vaibhav