简体   繁体   English

如何在 xpath "." 中组合和 ”()”

[英]How to combine in xpath "." and "()"

I have a table in DOM, eg:我在 DOM 中有一个表,例如:

<div class="test-table">
  <div class="ant-collapse ant-collapse-icon-position-start test-table-composer">
    <div class="ant-collapse-item ant-collapse-item-active">
      <div class="ant-collapse-header" role="button" />
      <div class="ant-collapse-content ant-collapse-content-active" >
        <div class="ant-collapse-content-box">
          <div class="ant-collapse ant-collapse-icon-position-start test-table-composer">
            <div class="ant-collapse-item ant-collapse-item-active">
              <div class="ant-collapse-header" role="button" />
              <div class="ant-collapse-content ant-collapse-content-active" >
                <div class="ant-collapse-content-box">
                  <div class="ant-collapse ant-collapse-icon-position-start test-table-composer">
                    <div class="ant-collapse-item">
                      <div class="ant-collapse-header" role="button"/>
                    </div>
                  </div>
                  <div class="test-table-test-group">
                    <div class="ant-collapse ant-collapse-icon-position-start test-table-test-item analyzed incomplete">
                      <div class="ant-collapse-item" id="c2c2c3b6-8b72-11ed-9e2e-0f23ae4a2524">
                        <div class="ant-collapse-header" role="button"/>
                      </div>
                    </div>
                    <div class="ant-collapse ant-collapse-icon-position-start test-table-test-item analyzed incomplete">
                      <div class="ant-collapse-item" id="c2c2c3b7-8b72-11ed-9e2e-8ba095d9d02e">
                        <div class="ant-collapse-header" role="button"/>
                      </div>
                    </div>
                    <div class="ant-collapse ant-collapse-icon-position-start test-table-test-item analyzed incomplete">
                      <div class="ant-collapse-item" id="c6248c66-8b72-11ed-9e2e-0b95f6f4ea18">
                        <div class="ant-collapse-header" role="button"/>
                      </div>
                    </div>
                    <div class="ant-collapse ant-collapse-icon-position-start test-table-test-item analyzed incomplete">
                      <div class="ant-collapse-item" id="c6466c47-8b72-11ed-9e2e-cd2c87901141">
                        <div class="ant-collapse-header" role="button"/>
                      </div>
                    </div>
                    <div class="ant-collapse ant-collapse-icon-position-start test-table-test-item analyzed incomplete">
                      <div class="ant-collapse-item" id="c4c28b5f-8b72-11ed-9e2e-496585fd7ed6">
                        <div class="ant-collapse-header" role="button"/>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <div class="test-table-test-group"/>
        </div>
      </div>
    </div>
  </div>
</div>

and have my xpath:并有我的 xpath:

(//div[contains(@class, 'test-table-composer')]/div[contains(@class, 'test-table-test-item') or (contains(@class, 'ant-collapse-item') and not(@id))])[%s]

and I have a library which adds a "."我有一个库,它添加了一个“。” to the beginning of the expression.到表达式的开头。 [%s] is used for adding indexes [%s] 用于添加索引

How can I correctly update my current xpath to work with a "."?如何正确更新我当前的 xpath 以使用“.”? I need parentheses because it can be several nested elements with my xpath and I need to find them all and have a possibility to add an index inside it我需要括号,因为它可以是我的 xpath 中的几个嵌套元素,我需要找到它们并有可能在其中添加索引

Looks like you can put the dot .看起来你可以把点. before the first // so your XPath will be在第一个之前//所以你的 XPath 将是

(.//div[contains(@class, 'test-table-composer')]/div[contains(@class, 'test-table-test-item') or (contains(@class, 'ant-collapse-item') and not(@id))])[%s]

otherwise it will not work否则它不会工作

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM