Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取所有子元素_Python_Selenium_Selenium Webdriver - Fatal编程技术网

Python 获取所有子元素

Python 获取所有子元素,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,在使用Python的Selenium中,是否可以将WebElement的所有子元素作为一个列表来获取?是的,可以通过find_elements\u by_css\u selector(“*”)或find_elements\u by_xpath(“./*”来实现 但是,这听起来不像是查找元素的所有子元素的有效用例。获得所有直接/间接子女是一项昂贵的手术。请进一步解释你想做什么。应该有更好的办法 from selenium import webdriver driver = webdriver.F

在使用Python的Selenium中,是否可以将WebElement的所有子元素作为一个列表来获取?

是的,可以通过
find_elements\u by_css\u selector(“*”)
find_elements\u 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\u elements\u by
将子元素检索到列表中。请参见此处的python绑定:

HTML示例:

<ul class="bar">
    <li>one</li>
    <li>two</li>
    <li>three</li>
</ul>

如果您需要有关特定案例的帮助,您可以使用希望从中获取父元素和子元素的HTML编辑您的帖子。

另一种尊重
通过xpath(“./*”)查找元素的方式是:

from selenium.webdriver.common.by import By


find_elements(By.XPATH, ".//*")

*按类名称查找元素只需找出
/
之前的
很重要,如果点缺失,即使您从元素调用方法,它也会再次搜索整个HTMLC。我们可以使用这种方法查找特定子级,或下一个直接子级吗?还是从父级开始的整个路径?
from selenium.webdriver.common.by import By


find_elements(By.XPATH, ".//*")