【问题标题】:XPath - preceding sibling contains an element checkXPath - 前面的兄弟包含元素检查
【发布时间】:2017-11-07 13:02:53
【问题描述】:

我有以下来自网页的简化 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 选择标准...

  • 一个 input 标签,位于 col-md-3 div 中,紧跟在 col-md-3 之后 div,其中包含 span,其中 class= 强制
  • 输入标签不应隐藏

上面 HTML 中的以下元素与搜索条件匹配

<input id="ImportTemplateEntities_5923.Header"></input>

(注意ID中的数值是动态分配的,搜索文档时不会被我知道。)

在添加任何类型的前同级之前,请检查这就是我所拥有的......

//input[contains(@id,'ImportTemplateEntities')][contains(@id,'Header')][not(contains(@type,'hidden'))]

如何编辑它以添加一个条件来检查前面的兄弟div 是否包含spanclass = mandatory

【问题讨论】:

    标签: html xml xpath


    【解决方案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,根据请求。

    【讨论】:

      猜你喜欢
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多