Javascript Xpath获取相对于给定元素在最近的环境中具有特定标记的元素
我有一个id为Javascript Xpath获取相对于给定元素在最近的环境中具有特定标记的元素,javascript,html,selenium,xpath,Javascript,Html,Selenium,Xpath,我有一个id为id的元素,比如uniqueId 它周围有各种各样的标签,我想在它最近的地方找到具体的标签 以下是一个例子: <div> <div> <input> </input> </div> <div> <form> . . <input id="uniqueI
id
的元素,比如uniqueId
它周围有各种各样的标签,我想在它最近的地方找到具体的标签
以下是一个例子:
<div>
<div>
<input> </input>
</div>
<div>
<form>
.
.
<input id="uniqueId"> </input>
.
.
</form>
<div>
</div>
.
.
.
.
如果我有sayid=“uniqueId”
的xpath,我想得到say最近的input
标记
我试过类似的东西
:[@tag=“input”]
及
/*[@id=“uniqueId”]/parent::以下兄弟姐妹::输入
或者类似于/*/input/*/[@id=“uniqueId”]
我必须在硒中使用这个
我已经查看了各种Xpath备忘单,但没有达到我的要求。这将找到
[@id='uniqueId']
元素的第一个前面的输入。您可以尝试以下操作:
//*[@id='uniqueId']/preceding::input[1]
这就是你要问的吗?最近的“准确地说是什么意思?还有,什么是
?除此之外,反斜杠在XPath中不起作用。您的任何尝试在语法上都是无效的。您还没有尝试任何操作,一分钟也没有。@Tomalak:Nearest意思是,如果我们从元素的xpath遍历DOM,它必须是最近的<代码>这就是我想问的,我们是否有办法做这样的事情。我更正了输入标记中的斜杠,id为您需要向上移动至少两个级别才能到达div(或者最好使用祖先::form并向上移动一个级别),然后使用前面的同级到达它上面的div,然后在其中获取输入标记。还有您正在尝试使用的xpath父::下面。。。会给你一个语法错误。正是我要找的。我还提出了一些类似的方法:/*[@id=“professional”]/祖先::div[@data bind=“ojModule:dynamicConfig()”]
或/*[@id=“professional”]/../../../../../../../../../../genant::input[@type=“text”]
,但您的解决方案已经到位。