我想提取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'元素。 有人可以告诉我我做错了什么,也请以正确的方式指导我吗? 预先感谢。
答案 0 :(得分:0)
您需要写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
给出所有匹配的元素
答案 1 :(得分:0)
您实际上要使用听起来here几乎相似的函数find_elements_by_tag_name
。
答案 2 :(得分:0)
尝试获取所有标头值,如下所示:
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)