我在网页上有以下简化的HTML ...
<div class="row import-entity">
<div class="col-md-11">
<div class="row">
<div class="col-md-3">
<span class="mandatory"></span>
</div>
<div class="col-md-3">
<input id="ImportTemplateEntities_2918.Header" type="hidden"></input>
<input id="ImportTemplateEntities_5923.Header"></input>
</div>
<div class="col-md-3">
<input id="ImportTemplateEntities_1234.Column"></input>
</div>
<div class="col-md-3"></div>
</div>
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-3">
<input id="ImportTemplateEntities_9182.Header" type="hidden"></input>
<input id="ImportTemplateEntities_2834.Header"></input>
</div>
<div class="col-md-3">
<input id="ImportTemplateEntities_1243.Column"></input>
</div>
<div class="col-md-3"></div>
</div>
</div>
</div>
需要以下XPath选择标准......
上述HTML中的以下元素与搜索条件匹配
<input id="ImportTemplateEntities_5923.Header"></input>
(请注意,ID中的数值是动态分配的,在搜索文档时我不会知道。)
在添加任何前面的兄弟姐妹检查之前,这就是我拥有的......
//input[contains(@id,'ImportTemplateEntities')][contains(@id,'Header')][not(contains(@type,'hidden'))]
如何编辑此内容以添加条件,以检查前一个兄弟div
是否包含span
class
= mandatory
?
答案 0 :(得分:1)
这个XPath,
//input[contains(@id,'ImportTemplateEntities')]
[contains(@id,'Header')]
[not(@type='hidden')]
[../preceding-sibling::div[span/@class='mandatory']]
将选择input
属性值包含所指明的子字符串的所有id
元素,而没有type
属性,其值为hidden
和其父级具有前一个兄弟div
元素,其子span
具有class
属性,其值为mandatory
,具体请求。