2013-10-08 21 views
8

Auf Selenium Webdriver, wie ich Text von einem span Tag & Druck retrive kann?
Ich brauche den Text zu extrahieren - "UPS Overnight - Free"Auf Selenium WebDriver, wie man Text vom Span Umbau erhält

HTML-Code sind wie folgt:
div id="customSelect_3" class="select_wrapper"> <div class="select_display hovered"> <span class="selectLabel clear">UPS Overnight - Free</span>

folgenden Code:

String kk = wd.findElement(By.xpath(//*[@id='customSelect_3']/div[1]/span)).getText(); 
System.out.println(kk); 

Aber oben Code zurückkehrt/Drucken Text - "1".

+0

Vielen Dank für alle guten Vorschläge, aber leider keine von ihnen sind erwartet Ergebnis. Immer noch 1 als Ergebnis angezeigt – Onu

+3

Ist der Text sichtbar? Mit Java hatte ich dieses Problem mit einem BR-Tag, das leer zurückkam. Anstelle von '.getText()' habe ich '.getAttribute (" innerHTML ")' verwendet, das dann zurückgibt, wonach ich gesucht habe, einschließlich unsichtbarem HTML-Text oder verstecktem Text. – jsherk

Antwort

3

sollte Ihr Code lesen -

String kk = wd.findElement(By.cssSelector("div[id^='customSelect'] span.selectLabel")).getText(); 

Verwenden CSS. es ist viel sauberer und einfacher .. Lass es mich wissen, wenn das dein Problem löst.

6

Ich stimme zu, CSS ist besser. Wenn Sie es über XPath tun wollten könnten Sie versuchen:

String kk = wd.findElement(By.xpath(.//*div[@id='customSelect_3']/div/span[@class='selectLabel clear'].getText())) 
2

Wenn Sie lieber XPath verwenden würden und dass Spanne ist der einzige unter Ihrem div Spannweite, mein Beispiel unten verwenden. Ich würde empfehlen, CSS zu verwenden (siehe den Beitrag von Sircapsalot).

String kk = wd.findElement(By.xpath(//*[@id='customSelect_3']//span)).getText(); 

CSS Beispiel:

String kk = wd.findElement(By.cssSelector("div[id='customSelect_3'] span[class='selectLabel clear']")).getText(); 
2

Vielleicht ist das span-Element ist versteckt. Wenn das der Fall ist, dann verwenden Sie die innerHtml-Eigenschaft:

String kk = wd.findElement(By.xpath("//*[@id='customSelect_3']/.//span[contains(@class,'selectLabel')]")).getAttribute("innerHTML") 

"/.//" bedeutet "Schau unter dem ausgewählten Element".

+0

Danke, .getAttribute ("innerHTML") hat wirklich mein Problem gelöst – Rodolfo

0
String kk = wd.findElement(By.xpath(//*[@id='customSelect_3']/div[1]/span)); 

kk.getText(). ToString(); System.out.println (+ kk.getText(). ToString());

+0

ein wenig umliegender Text wäre nett;) – Alexander

0

Pythonic Weise Text von Span-Tags erhalten:

driver.find_element_by_xpath("//*[@id='customSelect_3']/.//span[contains(@class,'selectLabel clear')]").text 
0

PHP Art und Weise Text von span-Tag des Erhaltens:

$spanText = $this->webDriver->findElement(WebDriverBy::xpath("//*[@id='specInformation']/tbody/tr[2]/td[1]/span[1]"))->getText(); 
0

Sie müssen das Element lokalisieren und verwenden getText() -Methode zu extrahieren der Text.

WebElement element = driver.findElement(By.id("customSelect_3")); 
System.out.println(element.getText()); 
Verwandte Themen