3

我想使用 XPath(在 Java 中)从下面的片段中仅选择文本“仅此文本”,但该文本是随机的,我不知道那里写的是什么。

 <div class="A">
    <input id="button" type="button">x</input>
    only this random text
 </div>

什么是最简单的 xpath?

 //div[@class='A'][what next?]

我看到了类似的问题,但答案总是太复杂,我想知道最简单的方法。

还有没有其他方法,而不使用 XPath(在 Java 中)来获取该文本?

谢谢。

4

3 回答 3

6

您可以使用轴 step 选择文本节点text()

//div[@class='A']/text()

如果您只想要节点后面的文本节点<input/>,请使用:

//div[@class="A"]/input/following-sibling::text()

您也可以向<input/>元素添加任意谓词 - 就像您为<div/>.

于 2013-05-21T21:15:29.983 回答
0

这有效:

//div[@class='A']/node()[not(self::input)]

但是它返回文本元素,现在 WebElement
似乎没有办法将它作为 WebElement 检索,因为文本应该是这样的元素:

<div class="A">
    <input id="button" type="button">x</input>
    <text>only this random text</text>
 </div>
于 2013-05-22T06:29:56.503 回答
0

使用parent标签定位并使用 .

如果 div 标签内的文本没有标签。

div[@class='A']

[contains(.,'只有这个随机文本')]

于 2014-12-19T12:29:38.230 回答