11

在 Selenium Webdriver 上,我如何从 span 标签中检索文本并打印?

我需要提取文本UPS Overnight - Free

HTML代码如下:

div id="customSelect_3" class="select_wrapper">
<div class="select_display hovered">
<span class="selectLabel clear">UPS Overnight - Free</span>

使用以下代码:

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

但上面的代码正在返回/打印文本:1.

4

8 回答 8

11

也许 span 元素被隐藏了。如果是这种情况,请使用 innerHtml 属性:

通过.css:

String kk = wd.findElement(By.cssSelector("#customSelect_3 span.selectLabel"))
              .getAttribute("innerHTML");

通过.xpath:

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

“/.//”的意思是“在选定的元素下查看”。

于 2014-12-15T19:23:24.000 回答
6

我同意css更好。如果您确实想通过 Xpath 执行此操作,您可以尝试:

    String kk = wd.findElement(By.xpath(.//*div[@id='customSelect_3']/div/span[@class='selectLabel clear'].getText()))
于 2013-10-08T04:45:12.993 回答
3

您的代码应为 -

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

使用 CSS。它更清洁,更容易..让我知道这是否解决了您的问题。

于 2013-10-08T03:49:24.477 回答
3

您需要定位元素并使用 getText() 方法提取文本。

WebElement element = driver.findElement(By.id("customSelect_3"));
System.out.println(element.getText());
于 2018-03-06T03:55:17.007 回答
2

如果您更愿意使用 xpath 并且该跨度是您的 div 下方的唯一跨度,请使用下面的示例。我建议使用 CSS(参见 sircapsalot 的帖子)。

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

示例:

String kk = wd.findElement(By.cssSelector("div[id='customSelect_3'] span[class='selectLabel clear']")).getText();
于 2013-10-08T17:39:09.283 回答
1
String kk = wd.findElement(By.xpath(//*[@id='customSelect_3']/div[1]/span));

kk.getText().toString();

System.out.println(+kk.getText().toString());
于 2015-05-27T07:23:11.470 回答
0

从 Span 标签中获取文本的 Pythonic 方式:

driver.find_element_by_xpath("//*[@id='customSelect_3']/.//span[contains(@class,'selectLabel clear')]").text
于 2015-07-07T02:09:53.997 回答
0

PHP从span标签获取文本的方法:

$spanText = $this->webDriver->findElement(WebDriverBy::xpath("//*[@id='specInformation']/tbody/tr[2]/td[1]/span[1]"))->getText();
于 2017-07-06T13:21:41.447 回答