2013-10-08 23 views
8

Su Selenium Webdriver, come posso recuperare il testo da un tag span & stampa?
Ho bisogno di estrarre il testo - "UPS Overnight - Free"Su Selenium WebDriver come ottenere testo da Span Tag

codice HTML sono i seguenti:
div id="customSelect_3" class="select_wrapper"> <div class="select_display hovered"> <span class="selectLabel clear">UPS Overnight - Free</span>

Utilizzando seguente codice:

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

Ma soprattutto il codice sta tornando/stampa testo - "1".

+0

ringraziare tutti voi per ottimi suggerimenti ma purtroppo nessuno di loro che ricavano il risultato atteso. Visualizza ancora 1 come risultato – Onu

+3

Il testo è visibile? Con Java stavo avendo questo problema con un tag BR che restituisce vuoto. Invece di '.getText()' Ho usato '.getAttribute (" innerHTML ")' che restituirà ciò che stavo cercando, incluso qualsiasi HTML che è invisibile o testo che è nascosto. – jsherk

risposta

3

Il codice dovrebbe leggere -

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

Usa CSS. è molto più pulito e facile ... Fammi sapere se questo risolve il tuo problema.

6

Sono d'accordo che css è migliore. Se avete voglia di farlo via Xpath si potrebbe provare:

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

Se si vuole usare XPath e che si estendono è l'unico arco sotto il div, utilizzare il mio esempio qui sotto. Consiglierei l'uso di CSS (vedi il post di sircapsalot).

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

css esempio:

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

Forse l'elemento arco è nascosto. Se questo è il caso, allora utilizzare la proprietà innerHtml:

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

"/.//" significa "guardare sotto l'elemento selezionato".

+0

Grazie, .getAttribute ("innerHTML") ha veramente risolto il mio problema – Rodolfo

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

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

+0

un piccolo testo circostante sarebbe bello;) – Alexander

0

modo Pythonic per ottenere il testo da tag span:

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

PHP modo di ottenere il testo da tag span:

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

È necessario individuare l'elemento e utilizzare getText() metodo per estrarre il testo.

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