1

我可以通过driver.find_element_by_xpath('//*[@id="app"]/table/tbody/tr[1]/td[1]')的xpath找到元素。但任何方式,我可以返回所有的孩子元素,如标签和标签xpath?使用python中的selenium webdriver从父xpath中找出所有的子元素xpath

<tr> 
    <td class=""> 
     <div> 
      <a href="/user/1"> 
       <!-- react-text: 6011 -->user first name | 
       <!-- /react-text --> 
       <!-- react-text: 6012 --> 
       <!-- /react-text --> 
       <!-- react-text: 6013 -->user last name 
       <!-- /react-text --> 
      </a> 
      <div> 
       <span> 
      <!-- react-text: 6014 -->town<!-- /react-text --> 
      <!-- react-text: 6015 --> | <!-- /react-text --> 
      <!-- react-text: 6015 -->month<!-- /react-text --> 
      <!-- react-text: 6081 --> | date<!-- /react-text --> 
      <!-- react-text: 6082 -->year<!-- /react-text --> 
      </span> 
      </div> 
     </div> 
    </td> 
    <td class=""><a href="/address/1">1</a> 
     <div class="">city</div> 
    </td> 
</tr> 
+0

只是为了阐明,您需要当前WebElement的所有子元素? –

回答

1

的关键是使用XPath .//*获得所有当前节点的孩子。 .选取当前元素& //*选择所有元素,这使得整个xpath选择当前元素的所有子元素。您的代码如下所示:

parent_elem = driver.find_element_by_xpath('//*[@id="app"]/table/tbody/tr[1]/td[1]') 
child_elements = parent_elem.find_elements_by_xpath('.//*') 
+0

我能够找到所有的child_elements,但是,我想有一个类似于列表的东西包含所有的子元素xpath [,..] – jacobcan118

+0

真的没有通用的取方法一个xpath因为一个元素没有1个xpath。可以有很多方法来获取元素xpath。 –

相关问题