1. ホーム
  2. python

[解決済み] すべての子要素を取得する

2023-02-13 20:39:13

質問

Selenium with Pythonで、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))