如何从div中的多个不同<p>元素中获取单个数据

时间:2018-03-06 22:42:10

标签: java html selenium-webdriver

我试图从包含多个段落元素的div中提取单个数据。

HTML:

    WebElement contactDetails = driver.findElement(By.className("details-organisation"));
    System.out.println(contactDetails.findElement(By.tagName("span")).getText());

例如,我试图拉动&#39; Test1&#39;来自&#39; details-organization&#39;的文字。

我的代码:

flip <- function(x) {                      # My attempted function
  str <- str_split(x,":",simplify=TRUE)
  paste(str[length(str):1], collapse = ":")
}

Data <- data.frame(                        # The data
  X = c("one:two:three:four","five:six:seven:eight")
)

mutate(Data,                               # My attempt & result
   Xflip = flip(X)
)
#>                     X                Xflip
#>1   one:two:three:four eight:four:seven:three:six:two:five:one
#>2 five:six:seven:eight eight:four:seven:three:six:two:five:one


# What I am looking for
#>                     X                Xflip
#>1   one:two:three:four   four:three:two:one
#>2 five:six:seven:eight eight:seven:six:five

运行它会打印出一个空行。

1 个答案:

答案 0 :(得分:0)

通过

提取网络元素时
WebElement contactDetails = driver.findElement(By.className("details-organisation"));
// contactDetails has a valid and an identifiable Web Element

您只需使用

打印文本即可
System.out.println(contactDetails.getText());

甚至在此之后你没有得到输出,标识包含文本的标签可能存在问题,因为它不是包含文本的段落标签,而是这样做的 span 标记。

您可以将网页元素行更改为

WebElement contactDetails = driver.findElement(By.xpath("//span[@class = 'details-organisation']/span/span"));

然后继续获取前面提到的文本。