Python Selenium从类中获取文本

2024-09-27 07:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

如果你能帮助我,我将非常高兴。
汤姆·鲁道夫


Tags: textname文本bydriverelementfindclass
3条回答

在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)

也许试试这个 是从美苏图书馆来的

从一开始:

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的地方,你可以把另一个标签放在这个类所在的地方(a,p,h) 在有div的地方,你可以把另一个标签放在这个类所在的地方(a,p,h)

在硒中,与其使用“元素”,不如在收获时收集所有的元素:D 但是,当您想要单击某个元素或键入某个内容(send_keys()或click())时,必须使用单个字符数,即“element”而不是“elements”

我为seleneium 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以查看您收集了多少数据等

如果元素具有所有这些类名,您只需将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)

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

相关问题 更多 >

    热门问题