在selenium webdriver中使用xpath获取grandParent

pan*_*aas 3 python selenium xpath selenium-webdriver

<div class="myclass">
  <span>...</span>
  <div>
       <table>
              <colgroup>...</>
              <tbody>
                    <tr>...</tr>
                    <tr>
                         <td> 
                              <input ...name="myname" ...> 
                         </td>
                    </tr>
                    <tr>...</tr>
              <tbody>
       </table>
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

这是我的HTML代码...我有属性"名称"..所以我可以访问标签...但从这一行我想访问顶级元素.一种方法是我写driver.find_element_by_xpath('..')6-7次来获得父母,但我不知道我必须走多远步骤.我只是想要一个xpath表达式或类似的东西来访问top.

我正在使用Selenium webdriver与python

pau*_*rth 10

您可以选择更高级别的元素并测试子节点属性,而不是定位更深层次的元素并在树中上升:

.//div[@class="myclass"][.//input[@name="myname"]]
Run Code Online (Sandbox Code Playgroud)


Stu*_*tLC 6

作为@Paul的答案的替代方案,您可以通过祖先轴input从向上导航到,但是,我不明白为什么他的解决方案不适合您:div

//input[@name='myname']/ancestor::div[@class = 'myclass']
Run Code Online (Sandbox Code Playgroud)