Selenium(Python):如何基于已定位元素查找其子元素
如何在Selenium中限定XPath搜索范围到指定元素的子树
你只需要在已定位的元素x上直接调用find_element()或find_elements()方法,同时使用相对路径的XPath表达式(以.开头),就能限定搜索范围在x的子树内,而非整个文档。
具体代码示例:
# 查找x子树内第一个class为"guest-name"的span元素 target_element = x.find_element('xpath', './/span[@class="guest-name"]') # 查找x子树内所有class为"guest-info"的div元素 target_elements = x.find_elements('xpath', './/div[@class="guest-info"]')
关键细节:
- 表达式开头的
.代表当前上下文元素(即你已经定位好的x) .//表示搜索x的所有后代节点(包括子节点、孙节点等多层级节点)- 如果只想搜索
x的直接子节点,用./,比如./div就是找x的直接子div元素
注意:如果XPath表达式开头没有.(比如直接写//span),即使在x上调用,依然会搜索整个文档,无法达到限定范围的效果。
内容的提问来源于stack exchange,提问作者joao
相关产品推荐
相关产品推荐

