我有一个HTML如下
<div class="someClass">
LNAME, FNAME MNAME
<a class="button" onclick="#">This is Button</a>
</div>
我想在div.someClass
LNAME, FNAME MNAME
内找到文字。
但我正在关注
LNAME, FNAME MNAME
This is Button
我正在使用driver.findElement(By.cssSelector("div.someClass")).getText();
我知道上面的代码给了我整个div.someClass
元素的文本。
如何提取just div.someClass
的值,而不是内部元素的值。例如,我已经给出了,我希望输出为
LNAME, FNAME MNAME
答案 0 :(得分:1)
//a[@class='button']/preceding-sibling::text()
答案 1 :(得分:1)
getText() - 根据定义 - 获取此元素的可见(即未被CSS隐藏)innerText,包括子元素,没有任何前导或尾随空格。
要从子元素中删除文本,您必须自己处理它,如下所述:
public String getTopElementText(By by)
{
WebElement topElement = driver.findElement(by);
String originalText = topElement.getText();
// get all child elements who has innerText and stringlength is greater than 0
List<WebElement> children = topElement.findElements(By.xpath("*[string-length(text()) > 0]"))
for(WebElement element : children)
orginalText = originalText.replace(element.getText(), "");
return originalText;
}