You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium WebDriver运行时触发TypeError问题求助

解决Selenium爬取Python官网的TypeError问题

你的代码触发TypeError的核心原因是Selenium 4.x及以上版本已经彻底移除了find_elements_by_css_selector这类旧版元素定位方法,课程里的代码应该是基于Selenium 3.x编写的,所以直接运行会报错。另外你代码里的CSS选择器存在多余空格(.event- widget),这也可能导致元素定位失败。

修正后的完整代码

from selenium import webdriver
from selenium.webdriver.common.by import By

chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("detach", True)

driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.python.org/")

# 替换旧版定位方法,同时修正CSS选择器的多余空格
event_times = driver.find_elements(By.CSS_SELECTOR, ".event-widget time")
event_names = driver.find_elements(By.CSS_SELECTOR, ".event-widget li a")
events = {}

for n in range(len(event_times)):
    events[n] = {
        "time": event_times[n].text,
        "name": event_names[n].text,
    }

print(events)

driver.quit()

关键修改点

  • 用driver.find_elements(By.CSS_SELECTOR, "选择器内容")替代旧的driver.find_elements_by_css_selector("选择器内容"),这是Selenium 4.x要求的标准定位方式
  • 清理CSS选择器中的多余空格,确保.event-widget是连续的正确类名

如果运行后还是有问题,可以检查你的Selenium版本,执行pip show selenium查看版本号,确保是4.x及以上版本,若不是则执行pip install --upgrade selenium升级。

内容的提问来源于stack exchange,提问作者TheFakeLex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:53:22