一尘不染

获取所有子元素

selenium

在带有Python的Selenium中,是否可以将WebElement的所有子级作为列表获取?


阅读 557

收藏
2020-06-26

共1个答案

一尘不染

是的,您可以通过find_elements_by_css_selector("*")或实现find_elements_by_xpath(".//*")

但是,这听起来并不像查找某个元素的 所有子 元素的有效用例。要获得所有直接/间接孩子都是昂贵的手术。请进一步说明您要做什么。应该有更好的方法。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.stackoverflow.com")

header = driver.find_element_by_id("header")

# start from your target element, here for example, "header"
all_children_by_css = header.find_elements_by_css_selector("*")
all_children_by_xpath = header.find_elements_by_xpath(".//*")

print 'len(all_children_by_css): ' + str(len(all_children_by_css))
print 'len(all_children_by_xpath): ' + str(len(all_children_by_xpath))
2020-06-26