首页 > 解决方案 > 如何使用 Selenium 和 Python 查找从 covid 中恢复的人数的类路径

问题描述

所以,我需要从这个网页获取文本(从covid中恢复的人数)到控制台,但是我找不到数字的类,有人可以帮我找到类,所以我可以将数字打印到控制台。我需要使用 PhantomJS 因为我不想在运行代码时打开日志。

from selenium import webdriver


driver = webdriver.PhantomJS()
driver.get('https://www.tvnet.lv/covid19Live')

text = driver.find_element_by_class_name("covid-summary__count covid-c-recovered")
print(text)

标签: pythonseleniumxpathwebdriverwaitclassname

解决方案


find_element_by_class_name()需要一个作为参数,但您提供了两个类名(类是“多值属性”,多个值用空格分隔)。

要么检查一个类:

driver.find_element_by_class_name("covid-c-recovered")

或者,切换到 CSS 选择器:

driver.find_element_by_css_selector(".covid-summary__count.covid-c-recovered")

深层发掘

让我们看一下源代码。当按类名搜索元素时,Python selenium 实际上在底层构造了一个 CSS 选择器:

elif by == By.CLASS_NAME:
    by = By.CSS_SELECTOR
    value = ".%s" % value

这意味着当您用作covid-summary__count covid-c-recovered类名值时,用于查找元素的实际 CSS 选择器恰好是:

.covid-summary__count covid-c-recovered

可以理解的是,它不匹配任何元素(covid-c-recovered在这里将被视为标签名称)。


推荐阅读