如何在selenium中使用Xpath查找元素的所有父元素

时间:2014-01-02 12:38:31

标签: jquery selenium xpath selenium-webdriver

说使用text()找到一个元素。现在使用该元素我想向上移动到父母(祖父母)的父母甚至上面,直到我得到父元素搜索。怎么做到这一点?在jquery中有没有类似于parents()的其他方法?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用.closest() jquery方法:

 var grandParent = $(this).closest('yourgrandparentID/Class');

@jQuery docs for .closest()

描述对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。


.closest()和.parents()之间的区别: -

.closest():

  1. 从当前元素开始
  2. 向上移动DOM树,直到找到所提供选择器的匹配项
  3. 返回的jQuery对象包含原始集中每个元素的零个或一个元素,按文档顺序
  4. 。家长():

    1. 从父元素开始
    2. 将DOM树移动到文档的根元素,将每个祖先元素添加到临时集合中;然后,如果提供了一个选择器,则根据选择器过滤该集合
    3. 返回的jQuery对象包含原始集中每个元素的零个或多个元素,反向文档顺序
    4. 使用xpath:

      你可以试试这个:

      <?xml version="1.0"?>
      <root>
         <foo id="id1">
             <foo id="i2">
                 <baz/>
             </foo>
         </foo>
      </root>
      

      如果您运行此代码:

        

      //巴兹/祖先:: foo的[1]

      这将选择最近的节点:

      <foo id="i2">