2012-11-05 9 views

Antwort

1

Wenn Sie nicht über den Standort des Textes vorhanden sind gestört, dann könnten Sie Driver.PageSource Eigenschaft verwenden, wie unten:

Driver.PageSource.Contains („erwartete Nachricht“);

+0

Gibt es eine Möglichkeit, den Text ohne Seitenquelle zu finden und mehr über i need true zu drucken, wenn der Text irgendwo in der Seite und Falsch liegt vor, wenn der Text doen't ... –

-1

Hinweis: Nicht in boolean

WebDriver driver=new FirefoxDriver(); 
driver.get("http://www.gmail.com"); 

if(driver.getPageSource().contains("Ur message")) 
    { 
    System.out.println("Pass"); 
    } 
else 
    { 
    System.out.println("Fail"); 
    } 
3

Ja, Sie können tun, was boolean zurückgibt. Die folgende Java-Code in WebDriver mit TestNG oder JUnit tun können:

protected boolean isTextPresent(String text){ 
    try{ 
     boolean b = driver.getPageSource().contains(text); 
     return b; 
    } 
    catch(Exception e){ 
     return false; 
    } 
    } 

nun die obige Methode aufrufen, wie unten:

assertTrue(isTextPresent("Your text")); 

Oder gibt es eine andere Art und Weise. Ich denke, das ist der bessere Weg:

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()); 
    } 
+0

Ihre Frage scheint einige Informationen zu fehlen. 1) Welche Sprache benutzen Sie? 2) Verwenden Sie ein Testframework als JUnit oder TestNG? –

+0

Ja, ich bevorzuge die letzte der obigen Antworten –

+0

Dies ist eine bessere Lösung, da es für mehrere Textwerte verwendet werden kann –

1

Driver.getPageSource() ist eine schlechte Möglichkeit, Text vorhanden zu verifizieren. Angenommen, Sie sagen, driver.getPageSource().contains("input"); Das nicht überprüft, "Eingabe" ist auf dem Bildschirm vorhanden, nur dass "Eingabe" in der HTML vorhanden ist, wie ein Eingabe-Tag.

ich in der Regel Text auf einem Element überprüfen, indem Sie mithilfe von XPath:

boolean textFound = false; 
try { 
    driver.findElement(By.xpath("//*[contains(text(),'someText')]")); 
    textFound = true; 
} catch (Exception e) { 
    textFound = false; 
} 

Wenn Sie eine genaue Text Spiel wollen, entfernen Sie einfach die Funktion contains:

driver.findElement(By.xpath("//*[text()='someText'])); 
5

Als zmorris driver.getPageSource().contains("input"); Punkte ist nicht die richtige Lösung, weil es in der ganzen HTML, nicht nur die Texte darauf sucht. Ich schlage vor, diese Frage zu prüfen: how can I check if some text exist or not in the page? und die Recomended Weise erklärt Slanec:

String bodyText = driver.findElement(By.tagName("body")).getText(); 
Assert.assertTrue("Text not found!", bodyText.contains(text)); 
+0

Sollte es nicht sein: String bodyText = driver.findElement (By.tagName ("body")) .getText(); Assert.asserTrue (true, bodyText.contains (Text)); – Cagy79

+0

Dies funktioniert nicht in Edge – SOAlgorithm

0

Für Ruby-Programmierer hier, wie Sie behaupten können. Haben Minitest enthalten die behauptet

assert(@driver.find_element(:tag_name => "body").text.include?("Name")) 
0

zu bekommen Below Code besten geeignet ist, einen Text auf Seite zu überprüfen. Sie können einen beliebigen von 8 Locators nach Belieben verwenden. ..

String Verifytext = driver.findElement (By.tagName ("body")) getText() stutzen(); Assert.assertEquals (Verifytext „Fügen Sie den Text hier die überprüft werden muss“);

0

Wenn Sie überprüfen nur Objekte angezeigt (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; 
    }