J'ai besoin de vérifier un texte présent dans la page via WebDriver. J'aime voir le résultat en booléen (vrai ou faux). Quelqu'un peut-il aider en donnant le code WebDriver?
Comme points de zmorris, driver.getPageSource().contains("input");
n’est pas la solution appropriée, car il effectue une recherche dans tout le code HTML, pas seulement dans les textes qui y figurent .. Je suggère de vérifier cette question: comment puis-je vérifier si du texte existe ou non dans la page? et la méthode recommandée par Slanec:
String bodyText = driver.findElement(By.tagName("body")).getText();
Assert.assertTrue("Text not found!", bodyText.contains(text));
Oui, vous pouvez faire ce qui retourne booléen. Le code Java suivant dans WebDriver avec TestNG ou JUnit peut faire l'affaire:
protected boolean isTextPresent(String text){
try{
boolean b = driver.getPageSource().contains(text);
return b;
}
catch(Exception e){
return false;
}
}
Appelez maintenant la méthode ci-dessus comme ci-dessous:
assertTrue(isTextPresent("Your text"));
Ou, il y a un autre moyen. Je pense que c'est la meilleure façon:
private StringBuffer verificationErrors = new StringBuffer();
try {
assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]* Your text here\r\n\r\n[\\s\\S]*$"));
} catch (Error e) {
verificationErrors.append(e.toString());
}
Driver.getPageSource () est un mauvais moyen de vérifier le texte présent. Supposons que vous disiez, driver.getPageSource().contains("input");
Cela ne vérifie pas que "input" est présent à l'écran, mais que "input" est présent dans le code HTML, comme une balise input.
Je vérifie généralement le texte d'un élément en utilisant xpath:
boolean textFound = false;
try {
driver.findElement(By.xpath("//*[contains(text(),'someText')]"));
textFound = true;
} catch (Exception e) {
textFound = false;
}
Si vous voulez une correspondance de texte exacte, supprimez simplement la fonction contient:
driver.findElement(By.xpath("//*[text()='someText']));
Si l'emplacement du texte présent ne vous dérange pas, vous pouvez utiliser la propriété Driver.Page Source comme ci-dessous:
Driver.Page_Source.Contains ("message attendu");
Si vous voulez vérifier uniquement les objets affichés ( C # ):
public bool TextPresent(string text, int expectedNumberOfOccurrences)
{
var elements = Driver.FindElements(By.XPath(".//*[text()[contains(.,'" + text + "')]]"));
var dispayedElements = 0;
foreach (var webElement in elements)
{
if (webElement.Displayed)
{
dispayedElements++;
}
}
var allExpectedElementsDisplayed = dispayedElements == expectedNumberOfOccurrences;
return allExpectedElementsDisplayed;
}
Pour les programmeurs Ruby, voici comment vous pouvez l'affirmer. Doit inclure Minitest pour obtenir les assertions
assert(@driver.find_element(:tag_name => "body").text.include?("Name"))
Le code ci-dessous est le moyen le plus approprié pour vérifier un texte sur une page. Vous pouvez utiliser n'importe lequel des 8 localisateurs selon votre convenance.
String Verifytext = driver.findElement (By.tagName ("body")). GetText (). Trim (); Assert.assertEquals (Verifytext, "Collez ici le texte à vérifier");