使用Selenium提取文本…但文本的透明度为0

2024-04-20 11:15:16 发布

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

我需要提取“一”类中的文本。 我有以下代码:

h3 = browser.find_element_by_class_name("one")

h3 = h3.text

print(h3)

问题是结果是一个空字符串…似乎没有输出任何内容。
进一步检查后,此类中的文本的不透明度为“0”。我想这就是问题的起因。我该怎么办?在


Tags: 字符串代码textname文本browser内容by
1条回答
网友
1楼 · 发布于 2024-04-20 11:15:16
el = browser.find_element_by_class_name("one")
print el.get_attribute('innerHTML')
> Success

在WebElement.文本知道CSS样式,所以el.text返回一个空行,而el.get_attribute('innerHTML')将返回其中的html(在本例中,只是文本)。在

或者,如果要使用.text属性,可以更改CSS使文本可见。在这种特殊情况下,需要修改的不仅是不透明性,还包括包含div的显示和可见性样式。例如:

^{pr2}$

但是.get_attribute('innerHTML')没有那么强的干扰性,对您在这里所要做的工作非常有效。在

更新1:

由于我不知道您的具体需求是什么,下面是我的代码,它从https://www.voilanorbert.com/中获取类为“one”的所有元素,并为每个元素打印出innerHTML

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get('https://www.voilanorbert.com/')

ones = driver.find_elements_by_class_name('one')

for el in ones:
    print el.get_attribute('innerHTML')

driver.close()

> Oh man, I broke my ankle
> Nothing found
> Catch-all
> Success
> I'm tired

相关问题 更多 >