在使用Python的Selenium中,是否可以将WebElement的所有子节点作为列表?
解决方案:
是的,你可以通过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))
是的,您可以使用find_elements_by_将子元素检索到列表中。请参阅此处的python绑定:http://selenium-python.readthedocs.io/locating-elements.html
示例HTML:
- one
- two
- three
您可以像这样使用find_elements_by_:parentElement = driver.find_element_by_class_name("bar")elementList = parentElement.find_elements_by_tag_name("li")
如果您需要特定案例的帮助,可以使用您希望从中获取父元素和子元素的HTML来编辑您的帖子。