2016-05-25 15 views
1

Möchten Sie den Text "Dies ist für den Test Selektor" von unten HTML-Code.Selen verwenden, um Text auszuwählen

<div class="breadcrumb"> 
    <a title=" Home" href="http://www.google.com/"> Home</a> 
    <span class="arrow">»</span> 
    <a title="abc" href="http://www.google.com/">test1</a> 
    <span class="arrow">»</span><a title="xyz" href="http://www.google.com/">test2</a> 
    <span class="arrow">»</span> 
    This is for testing selector 
    </div> 
+0

haben Sie versucht mit '.getText();' – Emna

+0

@ Emna: es wird nicht funktionieren – user2940827

+0

Sorry, ich habe mich nicht viel konzentrieren, ich lege eine Antwort überprüfen Sie es! – Emna

Antwort

0

I‘ Ich bin mir nicht sicher, ob es einen leichten Ausweg dafür gibt oder nicht. Es erwies sich als schwieriger als ich dachte. Der unten erwähnte Code wird lokal getestet und liefert korrekte Ausgabe für mich;)

String MyString= driver.findElement(By.xpath("//div[@class='breadcrumb']")).getText(); 
    //get all child nodes of div parent class 
    List<WebElement> ele= driver.findElements(By.xpath("//div[@class='breadcrumb']/child::*")); 
     for(WebElement i:ele) { 
     //substracing a text of child node from parent node text 
     MyString= MyString.substring(i.getText().length(), MyString.length()); 
     //removing white spaces 
     MyString=MyString.trim(); 
      } 

    System.out.println(MyString); 

Lassen Sie mich wissen, ob es für Sie funktioniert oder nicht!

+0

Ja, es hat funktioniert, aber lange Code braucht Zeit, um auszuführen. – user2940827

0

enter image description here Versuchen mit diesem Beispiel:

driver.get("http://www.google.com/"); 
    WebElement text = 
    findElement(By.className("breadcrumb")).find("span").get(1); 

    Actions select = new Actions(driver); 
    select.doubleClick(text).build().perform(); 

Ich schlage vor, dass Sie den XPath für den Text kopieren Sie brauchen, und hier setzen die genaue XPath haben enter image description here

+0

was ist "google" hier – user2940827

+0

Ich kenne nicht den Pfad des Textes, den Sie auswählen möchten, es ist nur ein Beispiel, um Ihnen die Auswahl Aktion zu zeigen, die getan werden muss! – Emna

+0

Text wird keinen x-Pfad haben – user2940827

0

Sie können keinen Text innerhalb eines Elements mit Xpath auswählen. Xpath kann Ihnen nur helfen, XML-Elemente oder in diesem Fall HTML-Elemente auszuwählen. Normalerweise sollte Text in einem span-Tag eingeschlossen sein, in Ihrem Fall jedoch nicht.

Sie können jedoch das div-Element auswählen, das den Text umschließt. dieses XPath Versuchen:

(//div[@class='breadcrumb']/span)[3]/following-sibling::text() 

Sie Antwort von Abhijeet versuchen könnte, wenn man nur innerhalb des Textes erhalten möchten. Überprüfen Sie als zusätzliche Überprüfung, ob die Zeichenfolge, die mit getText() für das Stammelement erhalten wurde, die Zeichenfolge enthält, die Sie mit getText() für die untergeordneten Elemente erhalten haben.

Verwandte Themen