web-dev-qa-db-fra.com

Sur Selenium WebDriver, comment obtenir du texte à partir d'une balise Span

Sur Selenium Webdriver, comment puis-je récupérer du texte à partir d'une balise span & print?
Je dois extraire le texte - "UPS Overnight - Free"

Le code HTML est le suivant:
div id="customSelect_3" class="select_wrapper"> <div class="select_display hovered"> <span class="selectLabel clear">UPS Overnight - Free</span>

En utilisant le code suivant:

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

Mais le code ci-dessus renvoie/impression texte - "1" .

8
Onu

Je suis d'accord css est mieux. Si vous voulez le faire via Xpath, vous pouvez essayer:

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

Votre code devrait lire -

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

Utilisez CSS. c'est beaucoup plus propre et plus facile .. Faites-moi savoir si cela résout votre problème.

3
sircapsalot

Peut-être que l'élément span est caché. Si c'est le cas, utilisez la propriété innerHtml:

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

"/.//" signifie "regarder sous l'élément sélectionné".

3
carlin.scott

Si vous préférez utiliser xpath et que cette plage est la seule en dessous de votre div, utilisez mon exemple ci-dessous. Je recommanderais d'utiliser CSS (voir le post de sircapsalot). 

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

exemple css:

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

Vous devez localiser l'élément et utiliser la méthode getText () pour extraire le texte.

WebElement element = driver.findElement(By.id("customSelect_3"));
System.out.println(element.getText());
1
Jayesh Vaghela

Manière pythonique d’obtenir du texte à partir de balises Span:

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

PHP moyen d'obtenir du texte à partir de balise span:

$spanText = $this->webDriver->findElement(WebDriverBy::xpath("//*[@id='specInformation']/tbody/tr[2]/td[1]/span[1]"))->getText();
0
Sudheesh.M.S
String kk = wd.findElement(By.xpath(//*[@id='customSelect_3']/div[1]/span));

kk.getText().toString();

System.out.println(+kk.getText().toString());
0
bhasat