![](/img/trans.png)
[英]find out all child elements xpath from parent xpath using selenium webdriver in python
[英]Finding all child elements in an html page using python selenium webdriver
我想提取 div 元素的所有 h2 元素。 我使用的代碼是這樣的:
browser = webdriver.Chrome()
browser.get("https://www.mmorpg.com/play-now")
time.sleep(2)
item_list_new=[]
link = browser.find_element_by_xpath("//div[@class='freegamelist']")
names = link.find_element_by_tag_name('h2')
x = names.text
item_list_new.append(x)
print(item_list_new)
但是當我運行它時,我只得到 div 元素的第一個 'h2' 元素。 有人可以告訴我我做錯了什么,還請指導我正確的做法嗎? 提前致謝。
你需要寫names = link.find_elements_by_tag_name('h2')
你的代碼應該是
browser = webdriver.Chrome()
browser.get("https://www.mmorpg.com/play-now")
time.sleep(2)
item_list_new=[]
link = browser.find_element_by_xpath("//div[@class='freegamelist']")
names = link.find_elements_by_tag_name('h2')
x = names.text
item_list_new.append(x)
print(item_list_new)
find_element_by_tag_name
給出第一個元素, find_elements_by_tag_name
給出所有匹配的元素
您實際上想要使用聽起來幾乎相似的函數find_elements_by_tag_name
,正如這里所指出的。
嘗試獲取所有標頭值,如下所示:
link = browser.find_element_by_xpath("//div[@class='freegamelist']")
names = link.find_elements_by_tag_name('h2')
item_list_new = [x.text for x in names]
print(item_list_new)
或者你可以簡化
names = browser.find_elements_by_xpath("//div[@class='freegamelist']//h2")
item_list_new = [x.text for x in names]
print(item_list_new)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.