selenium - webcrawler- find_elements_by_css_selector(webelement).text 不起作用,但需要一个迭代器。为什么?

selenium - webcrawler- find_elements_by_css_selector(webelement).text does not work but need an iterator. why?

正如问题所暗示的,为什么下面的错误代码不起作用,而正确的代码却可以?

他们本质上不是一回事吗?我环顾四周,看到 post 解释说 python 本机列表有效,但在这种情况下 selenium 创建的对象列表将无效

但我并没有真正理解它的本质,任何人都可以请新手程序员用通俗易懂的语言进一步详细说明

错误代码:

mainText = driver.find_elements_by_css_selector(
    'div.post_content.clearfix > p').text
    print(mainContentDetail)

列表没有属性文本

正确代码:

mainText = driver.find_elements_by_css_selector(
    'div.post_content.clearfix > p')
for mainContentDetail in mainText:
    print(mainContentDetail.text)

当您在下面使用时,您会尝试使用 css 选择器匹配 div.post_content.clearfix > p.

的元素列表
driver.find_elements_by_css_selector(
    'div.post_content.clearfix > p')

当你在下面写的时候,你试图从多个元素中获取文本。但是 text 方法可以获取与单个元素关联的文本。当您尝试使用文本方法从多个元素中获取文本时,它会抛出错误。

driver.find_elements_by_css_selector(
    'div.post_content.clearfix > p').text

在下面的代码中,您将列表元素添加到一个名为 mainText 的列表中,您正在遍历 mainText 列表中的每个元素,然后使用文本方法从每个元素中获取文本。因此有效。

mainText = driver.find_elements_by_css_selector(
    'div.post_content.clearfix > p')
for mainContentDetail in mainText:
    print(mainContentDetail.text)