我正在使用以下XPath选择器:
//*[text()="Surname"]//parent::*//following-sibling::*[self::select or self::input or self::textarea]
//*[text()="Surname"]//parent::*//following-sibling::*//*[self::select or self::input or self::textarea]
要选择输入,请从此结构中的标签中选择或textarea:
<div>
<div><label for="">Surname</label></div>
<div class="help">Some help text in a tooltip</div>
<div class="control">
<div>
<input type="text" value="" />
</div>
</div>
</div>
或者这个:
<div>
<div><label for="">Surname</label></div>
<div class="help">Some help text in a tooltip</div>
<input type="text" value="" />
</div>
这很好用,但是只关注选择器的结尾,我想知道是否可以使这只是一个选择器?
我在上面的第二个选择器上尝试了后代或自我而不是自我,但它不能用于选择第二个dom结构。
答案 0 :(得分:1)
你可以升级两级并寻找任何后代
//*[text()="Surname"]//..//..//*[self::select or self::input or self::textarea]
答案 1 :(得分:1)
以下XPath使用&#34; Surname&#34;标识包含div
元素的label
元素。 value,然后使用following-sibling::
轴匹配匹配div
之后的同一级别的任何元素(它可能是第二个示例中的表单元素或包含那些表单元素的div第一个例子),然后使用带有谓词的descendant-or-self::
轴来匹配任何所需的表单元素。
//div[label = 'Surname']
/following-sibling::*
/descendant-or-self::*[self::select or self::input or self::textarea]
答案 2 :(得分:0)
请按照以下步骤操作:
10.0.2.2 //This refers to the computer
元件。<input>
元素中的元素。打开浏览器的控制台
并输入<input>
$("")
元素的html。<input>
并粘贴您复制并粘贴的内容
第5步中的引用。成功运行程序。
答案 3 :(得分:0)
我不确定为什么之前没有用,但第一个选择器现在实际上涵盖了两种情况。我刚才意识到parent::*
也可以是..
//*[text()="Surname"]//..//following-sibling::*[self::select or self::input or self::textarea]