我想得到一个文本,它正好出现在一个特定的元素之后。请看下面的示例代码:
<div id="content-tab-submitter" class="">
<h4>Sender</h4>
<p>
<span class="screenHidden">Name: </span>
submitter
<br>
<span class="screenHidden">E-mail address:</span>
submitter@asd.com
<br>
<span class="screenHidden">Account: </span>
asdas
<br>
</p>
</div>
我想获取紧跟在<span>
后面的包含“Account”的文本。通过使用以下XPath表达式:
//*[@id='content-tab-submitter']/p/span[contains(text(),'Account')]/following::text()
Java给了我一个错误,因为输出不是web元素,而是文本。所以,不可能使用findElement。
我怎样才能以一种干净的方式得到这个文本?我的意思是我不想得到所有的文本(在这种情况下):submitter\nsubmitter@asd.com\nasdas,然后提取所需的文本。
5条答案
按热度按时间6mzjoqzu1#
我认为没有任何直接的方法可以提取Account后面的文本:即直接引用text =“asdas”的XPath表达式。
因此,不要尝试直接读取text = 'asdas',而是尝试读取 p 标记中的每一个文本,并执行如下操作来提取标记。
输出结果如下:
0tdrvxhp2#
您可以使用一段JavaScript代码来获取以下文本节点:
zbdgwd5y3#
若要取得文字(例如,asdas),它正好出现在
<span>
之后,innerText为Account,您可以使用下列程式码行:8iwquhpp4#
我希望这能完美地工作。如果不能,那么请在 span 类前面添加一个 div 类。
2sbarzqh5#
您可以使用Selenium的getText()方法,例如:
XPath表达式可以是: