我可以通过driver.find_element_by_xpath('//*[@id="app"]/table/tbody/tr[1]/td[1]')
的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 :(得分:5)
关键是使用xpath .//*
来获取当前节点的所有子节点。 .
选择当前元素&amp; //*
选择所有元素,这使得整个xpath选择当前元素的所有子元素。您的代码将如下所示:
parent_elem = driver.find_element_by_xpath('//*[@id="app"]/table/tbody/tr[1]/td[1]')
child_elements = parent_elem.find_elements_by_xpath('.//*')