首页 > 解决方案 > 按类打印多个元素时得到一个空列表

问题描述

我想要一个所有“_7Uhw9 ...”类的列表,尽管这些类有多个,跨越它们和所有内容,它会打印出一个空列表。为什么?

message_response = driver.find_elements_by_class_name('_7UhW9   xLCgt      MMzan  KV-D4         p1tLr      hjZTB')

print(message_response)

如果您想近距离接触 HTML,您可以访问任何 Instagram 帐户的 dm 收件箱,它应该在那里。但是,如果您需要的话,这里有一张图片:HTML 元素的图片

标签: pythonpython-3.xseleniumselenium-webdriverweb-scraping

解决方案


类名用空格隔开表示多个类

by_class 在后台使用 css 类表示法,因此如果它有多个类,则应将空格替换为 '.'

message_response = driver.find_elements_by_class_name('_7UhW9.xLCgt.MMzan.KV-D4.p1tLr.hjZTB')

否则,您可以改用 css 或 xpath 属性检查:

在这里,我们将类视为属性并使用以下语法:

xpath 和 css 的语法类似于

路径:

//tagname[@attribute="value"]

css

tagname[attribute="value"]

所以使用任何这种语法

 message_response = driver.find_elements_by_xpath("//*[@class='_7UhW9   xLCgt      MMzan  KV-D4         p1tLr      hjZTB']")

或者

message_response = driver.find_elements_by_css_selector("[class='_7UhW9   xLCgt      MMzan  KV-D4         p1tLr      hjZTB']")

推荐阅读