如何在selenium中获取存储在span类中的值

时间:2017-04-03 10:44:29

标签: java selenium webdriver

我有一个类似于附图中的span类。我想获取所有三个值,即0.413%,0.012%, - 和 -

当我遍历这个span类并获取文本时,所有三个值都存储在字符串中,但我希望它们一个接一个。  ' - '可以在任何地方。如何获取这些值。

Table : 
Name String, 
Email String, 
Phone string 
address string 

Name : A 
Email : A@gmail.com##B@gmail.com##A@gmail.com##C@gmail.com 
Phone : 123##456##678 
Address : 87P Plz##96C Blk##87P Plz 

Expected output: 
Name : A 
Email : A@gmail.com##B@gmail.com##C@gmail.com 
Phone : 123##456##678 
Address : 87P Plz##96C Blk 

实际:0.413%\ n 0.012%\ n - 预期:0.413%,0.012%, - span class image link pls open it to see the span class description

1 个答案:

答案 0 :(得分:0)

看起来像家庭作业。嗯。好。我把它放在我的礼包里:

public String getTextFromElementsTextNodes(WebDriver webDriver, WebElement element) throws IllegalArgumentException {

    String text = "";
    if (webDriver instanceof JavascriptExecutor) {
        text = (String)((JavascriptExecutor) webDriver).executeScript(
                "var nodes = arguments[0].childNodes;" +
                "var text = '';" +
                "for (var i = 0; i < nodes.length; i++) {" +
                "    if (nodes[i].nodeType == Node.TEXT_NODE) {" +
                "        text += nodes[i].textContent;" +
                "    }" +
                "}" +
                "return text;"
                , element);
    } else {
        throw new IllegalArgumentException("driver is not an instance of JavascriptExecutor");
    }
    return text;
}

返回所有字符,包括非ASCII换行符。我通常只想要文本,所以我添加了这个

getTextFromElementsTextNodes(driver, anElement).replaceAll("[^\\x00-\\x7F]", " ");