Python Selenium 从 class 中获取文本

Python Selenium get text out of a class

嘿,我想要这个 class 中的文本并在控制台中打印它。
我该怎么做?
我试过:

profileName = driver.find_element_by_class_name("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text()
print(profileName)

如果你能帮助我,我会很高兴。
汤姆·鲁道夫

如果该元素具有所有这些 class 名称,您只需将 find_element_by_class_name 更改为 find_element_by_css_selector,如下所示:

profileName = driver.find_element_by_css_selector("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text()
print(profileName)

但是我很确定这些 class 名称是动态变化的,所以这不会起作用。
另外,请确保在访问元素之前添加了一些延迟/等待。

也许试试这个 来自 BeautifulSoup 图书馆

从头开始:

import requests
from bs4 import BeautifulSoup

url = 'my_site'
r = request.get (url)
re1 = BeautifulSoup (r.text, "lxml")
re2 = re1.body.find_all ('div', {'class': '._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl'})
for syntax in re2 [:]:
     print (syntax)

哪里有div你可以在这个class是(a,p,h)的地方放另一个标签 哪里有 div 你可以在这个 class 是 (a, p, h)

的地方放另一个标签

并且在 selenium 中,而不是 'element' 使用 'elements',在收获时最好收集所有东西:D 但是当你想点击一个元素或输入一些东西(send_keys () 或点击 ())时,你必须使用单一数量的字符,即 'element' 而不是 'elements'

我为 selenium webdriver 做这个

data1 = driver.find_elements_by_class_name('class')
data2 = driver.find_elements_by_css_selector('css_selector")

if len(data1) >  0:
  do something
if len(data2) > 0:
 do something

如果您想查看错误是如何弹出的,您可以随时添加 else,打印 (len (data1)) 或 data2 以查看您收集了多少数据等。

在python中不是text(),是.text

这个 ._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl 看起来也很动态,css_selector 不是 class_name

代码 1 :

profileName = driver.find_element_by_css_selector("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text
print(profileName)

代码 2 :

profileName = driver.find_element_by_css_selector("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").get_attribute('innerHTML')
print(profileName)