当前位置: 首页 > 知识库问答 >
问题:

获取所有子元素

柯锋
2023-03-14

在Selenium和Python中,是否可以将WebElement的所有子元素作为列表?

共有3个答案

邓阳炎
2023-03-14

find_elements_by_xpath(".//*") 的另一种崇敬是:

from selenium.webdriver.common.by import By


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

徐栋
2023-03-14

是的,您可以使用“按查找元素”将子元素检索到列表中。请参见此处的python绑定:http://selenium-python.readthedocs.io/locating-elements.html

示例超文本标记语言:

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

您可以像这样使用find_elements_by

parentElement = driver.find_element_by_class_name("bar")
elementList = parentElement.find_elements_by_tag_name("li")

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

楚丰羽
2023-03-14

是的,您可以通过find\u elements\u by\u css\u selector(“*”)find\u elements\u by\u 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))
 类似资料:
  • 问题内容: 在带有Python的Selenium中,是否可以将WebElement的所有子级作为列表获取? 问题答案: 是的,您可以通过或实现。 但是,这听起来并不像查找某个元素的 所有子 元素的有效用例。要获得所有直接/间接孩子都是昂贵的手术。请进一步说明您要做什么。应该有更好的方法。

  • 问题内容: 我想找到一种方法来获取元素树的所有子元素,就像这样,因为自python 2.7版本以来已弃用,尽管现在我仍然可以使用它,但我不想再使用它了。 谢谢。 问题答案: 的所有子元素(后代): 一个更完整的示例: 排除根本身:

  • 你们这些家伙,我有这样一个HTML: 这是将上述所有选项放入列表的代码: 实际上它不起作用。我不知道我错在哪里。请帮帮我。非常感谢。

  • 问题内容: 我今天一直在测试Javascript CSS函数,并注意到当使用.style.cssText时,它仅提供了我用JS设置的CSS。 相反,我想获取元素的所有CSS,所以我猜我在做错什么,或者可能需要另一个函数,例如getComputedStyle,但要使用整个CSS而不是单个属性值,但是我找不到搜索时需要的东西。 所以我的问题是如何从代码的最后部分获得完整的CSS,例如: 而不是当前输出

  • smembers key 返回key对应set的所有元素,结果是无序的,集合元素很多时会阻塞,生产上禁用!

  • 问题内容: 我有这段代码来获取我需要的所有元素并进行一些处理。问题是我需要指定每个面板以获取其中的元素。 我想做这样的事情,并且不需要指定所有面板名称就可以获取所有元素。我该怎么做。下面的代码无法获取所有元素。 问题答案: 您可以编写一个递归方法并在每个容器上递归: 该站点提供了一些示例代码: 如果只需要直接子组件的组件,则可以将递归深度限制为2。