簡體   English   中英

使用python selenium webdriver查找html頁面中的所有子元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM