【发布时间】:2017-09-28 10:47:07
【问题描述】:
我有一个带有id 的元素,比如uniqueId
它周围有各种标签,我想在它最近的地方获取特定标签。
这是一个例子:
<div>
<div>
<input> </input>
</div>
<div>
<form>
.
.
<input id="uniqueId"> </input>
.
.
</form>
<div>
</div>
如果我有说id="uniqueId" 的xpath,我想说最近的input 标签。
我尝试过类似的东西
<ancestor-siblings>::[@tag="input"]
和
//*[@id="uniqueId"]/parent::following-sibling::input
或类似//*/input/*/[@id="uniqueId"]
我必须在 Selenium 中使用它。
我浏览了各种 Xpath 备忘单,但无法达到我的要求。
【问题讨论】:
-
“最近的”到底是什么意思?另外,
<ancestor-siblings>是什么?最重要的是,反斜杠在 XPath 中不起作用。您的任何尝试在语法上都不是有效的。你还没有尝试任何东西,一分钟都没有。 -
@Tomalak:最近的意思是,如果我们从我们拥有的元素的 xpath 遍历 DOM,它必须是最近的。
<ancestor-siblings>那是我只是在问我们是否有任何方法可以做这样的事情。我纠正了斜线的事情 -
从带有 id 的输入标签中,您需要向上移动至少两级才能到达 div (或者最好使用祖先::form 并向上移动一级),然后使用previous-sibling 来获取到它上面的div,然后在其中获取输入标签。此外,您尝试使用 parent::following... 的 xpath 会给您一个语法错误。
标签: javascript html selenium xpath