Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于SeleniumWebDriver如何从Span标记获取文本_Java_Html_Selenium_Selenium Webdriver - Fatal编程技术网

Java 关于SeleniumWebDriver如何从Span标记获取文本

Java 关于SeleniumWebDriver如何从Span标记获取文本,java,html,selenium,selenium-webdriver,Java,Html,Selenium,Selenium Webdriver,在SeleniumWebDriver上,如何从span标记和打印中检索文本 我需要提取文本UPS过夜免费 HTML代码如下所示: div id="customSelect_3" class="select_wrapper"> <div class="select_display hovered"> <span class="selectLabel clear">UPS Overnight - Free</span> 但是上面的代码正在返回/打印文本:1

在SeleniumWebDriver上,如何从span标记和打印中检索文本

我需要提取文本
UPS过夜免费

HTML代码如下所示:

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

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

您的代码应该是-

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

使用CSS。它更干净、更容易。。让我知道这是否解决了您的问题。

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

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

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

css示例:

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

可能跨度元素是隐藏的。如果是这种情况,请使用innerHtml属性:

By.css:

String kk=wd.findelelement(By.cssSelector(“#customSelect_3 span.selectLabel”))
.getAttribute(“innerHTML”);
By.xpath:

String kk=wd.findElement(By.xpath(
“//*[@id='customSelect_3']/.//./span[包含(@class,'selectLabel')]”)
.getAttribute(“innerHTML”);
“/。/”表示“查看所选元素”


从Span标记获取文本的Python方式:

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

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

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

您需要找到元素并使用getText()方法提取文本

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

谢谢大家提出的好建议,但不幸的是,没有一个能产生预期的结果。是否仍将1显示为可见文本的结果?对于Java,我遇到了一个BR标记返回空的问题。我使用了
.getText()
而不是
.getAttribute(“innerHTML”)
,它将返回我要查找的内容,包括任何不可见的HTML或隐藏的文本。如果周围有一点文本就好了;)谢谢,.getAttribute(“innerHTML”)真的解决了我的问题
driver.find_element_by_xpath("//*[@id='customSelect_3']/.//span[contains(@class,'selectLabel clear')]").text
$spanText = $this->webDriver->findElement(WebDriverBy::xpath("//*[@id='specInformation']/tbody/tr[2]/td[1]/span[1]"))->getText();
WebElement element = driver.findElement(By.id("customSelect_3"));
System.out.println(element.getText());