使用 Selenium 从 div 获取文本

Hay*_*den 3 python selenium python-3.x

我正在使用 Selenium 和 Python 从页面中提取信息

这是我想从中提取的 div:

<div class="_2v66">5</div>
Run Code Online (Sandbox Code Playgroud)

我想提取值“5”

这是我写的Python:

element = browser.find_elements_by_class_name('_2v66').getText

print('Views:')
print(element)
Run Code Online (Sandbox Code Playgroud)

当我运行此脚本时,我收到以下消息:

Traceback (most recent call last):
  File "<string>", line 95, in <module>
AttributeError: 'list' object has no attribute 'getText'
[Finished in 15.478s]
Run Code Online (Sandbox Code Playgroud)

解决方案:

虽然我一开始认为div类是唯一的,但仔细查看页面后发现它不是一个唯一的div,因此解决方案如下:

browser.get(('https://www.facebook.com/example_page_1/insights/?section=navVideos'))

browser.implicitly_wait(60)

# find_elements_by_class_name - Returns the div in which the metrics are found
elements = browser.find_elements_by_class_name('_2v66')

for e in elements:
    print(e.text)
Run Code Online (Sandbox Code Playgroud)

browser.implicitly_wait对于允许页面加载至关重要。我收到的关于不存在的对象的错误就是因为这个。

Ami*_*mit 5

只用 .text

element = browser.find_element_by_class_name('_2v66').text
Run Code Online (Sandbox Code Playgroud)

如果有多个元素,则必须遍历它们。

elements = browser.find_elements_by_class_name('_2v66')
for e in elements:
    print(e.text)
Run Code Online (Sandbox Code Playgroud)