Wie Sie XPATH verwenden, um die Suche für ein span mit einer Klasse für Selenium-Tests in JAVA

Arbeite ich an einem Stück code, das will mir wählen Sie den span mit der Klasse amountCharged und erhalten den Wert der Spannweite, um es zu testen gegen mock-Wert. Das problem, das ich bin vor ist, ich kann nicht scheinen, um zu wählen, dass span mit XPath. Ich habe versucht, mehrere Möglichkeiten, und immer noch nicht, ich ging auf W3Schools und Stackoverflow Fragen, aber nicht in der Lage war, den Nagel syntax.

Unten ist der Fehler, das ich mich vor:

org.openqa.selenium.TimeoutException: Timed out after 60 seconds waiting for text ('£163.06') to be present in element found by `By.xpath:`

 //span[contains(@class, 'amountCharged')]

Wie Sie sehen können ich bin versucht, //span[contains(@class,'amountCharged')] als XPATH gleiche Problem mit der Verwendung von "

/descendant::span[contains(@class, 'amountCharged')]

DEN HTML-AUSGEHEND VON EINEM ÜBERGEORDNETEN DIV IST:

    <div class="panelMessage instructional" params="">    Total:         
 <span class="amountCharged">£163.06</span> quoted on          
<span class="reservationTime">Tue, 29 Nov 2011 15:46 GMT</span> . </div>
    </div>        
<div class="panelContent hideFocus noneBlock  " tabindex="-1" data-  context="panelContent">

Den JAVA-code ist:

   private static void elementShouldContain(String locator, String value, String errorMessage, long timeout) {
    String xpath = buildLocator(locator, "");
    WebDriverWait customWait = new WebDriverWait(webDriverInstance, timeout / 1000);
    try {
    customWait.until(ExpectedConditions.textToBePresentInElement(By.xpath(xpath), value));
    } catch (Exception e) {
        //Handles the specific exception, except that the message is null, in which case throws a regular SeleniumException
        if (errorMessage != null)
            throw new CustomSeleniumException(errorMessage, e);
        else
            throw new SeleniumException(e);
    }
}

was bin ich bitte um Hilfe.

Danke

  • Es wäre gut, um zu zeigen Sie den HTML-von dem Ihr XPath bestimmt ist, zu wählen.
  • deine Fehlermeldung zeigt an, dass es nicht finden können, die bestimmten text, aber es funktioniert, suchen Sie nach dem element
  • Ich habe eingefügt, den HTML-und den text 163.06 ist es
  • Gibt es mehr Elemente mit amountCharged Namen präsentieren?
  • Nein, in der gesamten HTML-es ist nur ein span mit der Klasse. Und es wählt die Spannweite, wenn ich es über chrome reg x checker
  • Und ich möchte, um zu sehen, wie man den text als gut. Also was verwenden Sie, um die span text
  • /descendant::span[contains(@class, 'amountCharged')]/text()[last()] ich habe versucht, diese und verglich es mit einem hard-codierten String "£163.06"

InformationsquelleAutor alyn000r | 2015-01-31
Schreibe einen Kommentar