Python Selenium从类中获取文本



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

profileName = driver.find_element_by_class_name("._7UhW9.fKFbl.yUEEX.KV-D4.fDxYl").text()
print(profileName)
如果你能帮助我,我将非常高兴。
汤姆·鲁道夫

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)

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

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

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

的地方放另一个标签和硒,而不是'元素'使用'元素',收获时最好收集一切:D但是当你想点击一个元素或输入一些东西(send_keys()或click())时,你必须使用单个字符数,即'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, print (len (data1))或data2来查看你收集了多少数据等等。

相关内容

  • 没有找到相关文章

最新更新