【问题标题】:XPath for all elements with any attribute with specific value?具有特定值的任何属性的所有元素的 XPath?
【发布时间】:2016-06-25 23:15:14
【问题描述】:

我正在使用 Selenium 来识别任何可能在其任何属性中具有指定值的 HTML 元素。我希望 XPath 中有某种方法可以做到这一点,但我还没有找到任何答案。

【问题讨论】:

    标签: html xml selenium xpath


    【解决方案1】:

    首先,如果要在 HTML 上应用 xpath 选择,则必须将其转换为 xhtml。

    选择在其属性之一中具有指定值的 (x)html 元素的 xpath 是:

    //*[@*="specified value"]
    

    【讨论】:

      【解决方案2】:

      这里是用于选择的 XPath 表达式...

      • 所有元素

        //*
        
      • 所有具有属性的元素,a:

        //*[@a]
        
      • 属性a等于v的所有元素:

        //*[@a='v']
        
      • 具有任意属性的所有元素:

        //*[@*]
        
      • 任何属性等于v的所有元素:

        //*[@*='v']
        

      感谢 Pierre 第一次发帖 //*[@*='v']。请点赞his answer

      【讨论】:

        【解决方案3】:

        //*[@*[contains(.,'val')]] 将从根中找到任何其值中包含“val”的属性的任何后代节点。

        【讨论】:

          【解决方案4】:

          谢谢各位!!我在 XPathFiddle 上试过这个,它似乎工作:

          示例 HTML

          <html>
            <body>
              <div my-attr1='value1'>
                  <a>  
                      <span my-attr2='value2'> Some Link </span>
                  </a>
              </div>
              <span my-attr3='value1'> Some Text </span>
            </body>
          </html>
          

          XPath 示例html//*[@*='value1']

          上面的 XPath 选择 divmy-attr1spanmy-attr3

          【讨论】:

            【解决方案5】:

            //a[@href[contains(.,'mailto:')]]
            此路径将找到所有带有 href 属性的标签都包含“mailto:”字符串

            【讨论】:

              猜你喜欢
              • 2012-11-30
              • 1970-01-01
              • 2011-08-03
              • 2022-01-03
              • 2016-02-13
              • 1970-01-01
              • 2018-02-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多