当前位置: 首页 > 知识库问答 >
问题:

如何跳过内部元素查找元素的xpath

阎啸
2023-03-14
<table>
  <tr>
    <td>
      <span>First Name</span>
    </td>
    <td>
      <div>
        <table>
          <tbody>
            <tr>
              <td>
                <div>
                  <table>
                    <tbody>
                      <tr>
                        <td>
                          <img src="1401-2ATd8" alt="" align="middle">
                        </td>
                        <td><span><input atabindex="2"  id=
                        "MainLimitLimit" type="text"></span></td>
                      </tr>
                    </tbody>
                  </table>
                </div>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </td>
  </tr>
</table>
By.xpath("//span[contains(text(), 'First Name')]/../../td[2]/div/table/tbody/tr/td/table/tbody/tr/td[2]/input")

但是..我可以跳过HTML,直接访问输入元素吗…好像?

By.xpath("//span[contains(text(), 'First Name')]/../../td[2]//input[contains@id,'MainLimitLimit')]")

共有1个答案

尉迟栋
2023-03-14

您可以尝试以下Xpath:

//td[contains(span,'First Name')]/following-sibling::td[1]//input[contains(@id, 'MainLimitLimit')]

说明:

选择名字元素:

//td[contains(span,'First Name')]
/following-sibling::td[1]
//input[contains(@id, 'MainLimitLimit')]
 类似资料:
  • 问题内容: 我有一个复杂的html结构,其中包含许多表和div ..而且结构可能会更改。如何通过跳过两者之间的元素来查找xpath。例如 : 我必须获取有关“名字”范围的输入元素 例如: 但是..我可以跳过htmls之间的内容并直接访问输入元素吗? 问题答案: 您可以尝试以下Xpath: 说明: 选择元素: 然后在上方元素旁边获取元素: 然后在上面第二步中选择的元素内获取元素:

  • 问题内容: 工作代码1: 工作代码2: 问题答案: 初始选择器的问题是缺少选择器的前面。在告诉XPath来搜索整个HTML树。 这应该可以解决问题: 如果要查找元素的子代,请改用,例如 如果要查找包含 文本 而不是href属性的链接,则可以使用

  • 如何跳过中的数组元素? 我的代码: 这将返回:

  • 请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码:

  • 我不能得到子元素。 我可以用appium inspector看到childNameTV元素下的childNameLabel元素 例如,我尝试查找第一个子元素的文本;

  • 问题内容: 以下定位技术之间有什么区别? 而且,从 性能角度来看 ,哪种方法是通过id定位元素的最快方法? 问题答案: 您的问题很难回答,肯定会给出一个结论性的答案。实际上,我很想将此问题标记为“太宽泛”,其他答案和评论也支持该问题。 以您的为例。纵观Selenium来源, 大多数 驱动程序只是获取您提供的ID,然后将其传递给有线协议: 如您所知,每个浏览器供应商都在单独的二进制文件中实现自己的有