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

Python Selenium ChromeDriver函数返回前冻结问题求助

Selenium脚本冻结问题排查与修复

核心问题分析

你的脚本反复出现冻结,核心原因是Chrome驱动进程未被彻底终止,导致资源占用或服务锁定。每次调用getName函数都会启动新的Chrome实例,但driver.close()仅关闭当前浏览器窗口,驱动进程仍在后台运行,积累的进程会阻塞后续执行;另外代码中还存在一处函数调用错误。

具体修复步骤

  1. 替换driver.close()为driver.quit()
    close()仅关闭当前标签页/窗口,quit()会彻底终止Chrome驱动进程,释放所有关联资源。修改finally块代码:

    finally:
        driver.quit()
    
  2. 修正循环中的函数调用错误
    循环里的pName = ids(i)是错误写法,应该调用目标函数getName(i):

    for i in ids:
        pName = getName(i)
        print("Found name: " + pName)
        pData[i] = pName
    
  3. 复用Chrome驱动实例(推荐优化)
    每次创建新驱动实例会消耗大量系统资源,建议在循环外初始化一次驱动,传入函数内复用:

    ids = [] # some set of ids
    pData = {}
    
    def getName(driver, id:str) -> str:
        driver.get('https://someurl/page?id=' + id)
        try:
            # 添加显式等待,确保元素加载完成后再操作
            from selenium.webdriver.support.ui import WebDriverWait
            from selenium.webdriver.support import expected_conditions as EC
            from selenium.webdriver.common.by import By
            
            element = WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.CSS_SELECTOR, "your-element-selector")) # 替换为实际元素定位方式
            )
            print(element.text)
        except Exception as e:
            print(e)
        return "abcd"
    
    # 初始化驱动
    options = Options()
    # 可选添加优化参数,减少资源占用
    # options.add_argument('--headless=new')
    # options.add_argument('--disable-gpu')
    s = Service('C:\\WebDriver\\chromedriver103.exe')
    driver = webdriver.Chrome(service=s, options=options)
    
    try:
        for i in ids:
            pName = getName(driver, i)
            print("Found name: " + pName)
            pData[i] = pName
    finally:
        driver.quit()
    
  4. 添加显式等待
    直接获取元素可能因页面未加载完成导致阻塞,使用显式等待替代盲目等待,既提升稳定性又避免不必要的阻塞。

验证方式

修复后运行脚本时,可打开任务管理器查看Chrome相关进程,确认每次执行后进程都能被正确终止。如果仍有冻结问题,检查Chrome浏览器版本与chromedriver版本是否完全匹配(当前chromedriver为103,浏览器需对应103.x版本)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:39:16