Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
Javascript 如何单独从webelement检索可见文本?_Javascript_Java_Selenium_Automation - Fatal编程技术网

Javascript 如何单独从webelement检索可见文本?

Javascript 如何单独从webelement检索可见文本?,javascript,java,selenium,automation,Javascript,Java,Selenium,Automation,如何使用java从webelement(Selenium)仅获取UI上可见的文本(不包括隐藏文本)?我尝试过使用javascript。例如: <span class='message'> this part is visible <span> visible </pan> <span> hidden </span> visible </span> 这部分是可见的 看得见的 隐藏的 看得见的 我希望仅从span中检索“此

如何使用java从webelement(Selenium)仅获取UI上可见的文本(不包括隐藏文本)?我尝试过使用javascript。例如:

<span class='message'>
this part is visible
<span>
visible
</pan>
<span>
hidden
</span>
visible
</span>

这部分是可见的
看得见的
隐藏的
看得见的
我希望仅从span中检索“此部分可见”,并使用类“message”。

根据,如果只获取元素的文本,selenium将只返回可见文本:

driver.findElement(By.id("myid")).getText();

这段代码对我有用

public String getVisibleTextFromElement(WebElement elem)
{
    String visibleText= (String) getJavaScriptExecutor().executeScript("var clone = $(arguments[0]).clone();"
            + "clone.appendTo('body').find(':hidden').remove();"
            + "var text = clone.text();"
            + "clone.remove(); return text;", elem);
    visibleText=visibleText.replaceAll("\\s+", " ");
    return visibleText;
}

欢迎使用stackoverflow:)您可能应该添加更多详细信息。。。您尝试过的一些代码和相关的HTML示例。