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

使用Selenium WebDriver无法打印Python官网活动信息的问题排查

问题排查与解决

你的代码无法打印活动名称,大概率是以下两个核心原因导致的:

1. 页面元素未加载完成就执行查找操作

Selenium打开页面后会立即执行find_elements,但Python官网的活动区域可能还没渲染完毕,导致获取到的events_names是空列表,自然没有内容可打印。

解决方法:添加显式等待,等待目标元素加载完成后再进行查找:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 保持浏览器打开
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("detach", True)

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

# 等待活动链接元素加载,最多等10秒
wait = WebDriverWait(driver, 10)
events_names = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".event_widget li a")))

for name in events_names:
    print(name.text)

driver.quit()

2. CSS选择器已失效

Python官网的DOM结构可能有更新,原来的.event_widget li a选择器可能不再匹配目标元素。你可以手动验证:

  • 打开Python官网,按F12打开开发者工具
  • 在控制台输入document.querySelectorAll(".event_widget li a"),查看是否能返回活动名称元素
  • 如果返回空,说明选择器需要调整,比如当前官网的活动区域类名是list-recent-events,对应的选择器可改为#events-widget .list-recent-events li a

调整后的代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

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

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

wait = WebDriverWait(driver, 10)
# 使用更新后的选择器
events_names = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#events-widget .list-recent-events li a")))

for name in events_names:
    print(name.text)

driver.quit()

额外排查点

如果以上方法都无效,检查:

  • 浏览器驱动版本是否与你的Chrome版本匹配,版本不兼容会导致元素查找异常
  • 是否有浏览器扩展(如广告拦截器)干扰页面加载,尝试禁用扩展后再运行代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:29:55