使用Selenium选择文本

时间:2016-05-25 16:52:59

标签: selenium selenium-webdriver webdriver

想从下面的HTML代码中选择“This is for testing selector”。

<div class="breadcrumb">
    <a title=" Home" href="http://www.google.com/"> Home</a> 
    <span class="arrow">»</span>
    <a title="abc" href="http://www.google.com/">test1</a> 
    <span class="arrow">»</span><a title="xyz" href="http://www.google.com/">test2</a> 
    <span class="arrow">»</span> 
    This is for testing selector
    </div>

3 个答案:

答案 0 :(得分:0)

enter image description here试试这个例子:

    driver.get("http://www.google.com/");
    WebElement text = 
    findElement(By.className("breadcrumb")).find("span").get(1);

    Actions select = new Actions(driver);
    select.doubleClick(text).build().perform();

我还建议您复制所需文本的xpath,并将其放在此处以获得确切的xpath enter image description here

答案 1 :(得分:0)

我不确定是否有一个简单的方法可以解决这个问题。事实证明这比我想象的要困难。下面提到的代码在本地测试并为我提供正确的输出;)

# load libraries
library(magrittr)
library(dplyr)
library(tidyr)
library(ggplot2)


# rename dataframe so it doesn't look so much like the base function
d <- dataframe

# remove spaces in column names
names(d) <- gsub(" ", "", names(d))

# shift data from wide to long and then
# add a day value and convert day-month-year to date class
d %<>% gather(month_col, values_col, -LSOAName) %>%
  mutate(month_col = as.Date(paste0("1-", month_col), "%d-%m-%y"))

# plot using ggplot2
ggplot(d, aes(x = month_col, y = values_col, colour = LSOAName)) +
  geom_line()

让我知道它是否适合您!

答案 2 :(得分:0)

您无法使用xpath选择元素内的文本。 Xpath只能帮助您选择XML元素,或者在本例中为HTML元素。 通常,文本应该包含在span标记中,但是,在您的情况下,它不是。

然而,你可以做的是选择包含文本的div元素。 试试这个xpath:

(//div[@class='breadcrumb']/span)[3]/following-sibling::text()

如果您只想获取文本,可以尝试Abhijeet的答案。作为附加检查,检查从根元素上使用getText()获得的字符串是否包含在子元素上使用getText()获得的字符串。