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

引入xlwings读取Excel代码后Selenium驱动的Chrome自动关闭问题

问题原因

这个Chrome自动关闭问题不是xlwings的功能bug,是两个运行逻辑共同导致的:

  • 未引入xlwings时,脚本执行完毕后Python没有触发完整的子进程回收,残留的chromedriver进程会托着Chrome窗口保持打开,这本身属于非预期的残留状态,不是Selenium的默认正常行为。
  • 引入xlwings后,调用xw.Book()加载Excel文件时会初始化Windows COM运行环境,脚本跑完所有代码行后会触发标准的全量子进程清理流程:Selenium拉起的chromedriver进程被正常回收,绑定的Chrome窗口自然会同步关闭。
修复方案

显式配置Chrome启动参数,开启detach分离模式,让Chrome窗口在driver进程退出后依然保留,具体修改如下:

  1. 导入ChromeOptions配置类
  2. 初始化driver前添加detach实验性配置
  3. 将配置传入Chrome初始化方法

修改后的driver初始化代码段:

from selenium.webdriver.chrome.options import Options
# 其余原有导入保持不变

# 原有Excel读取、账号密码定义代码保持不变
Path = "c:/chromedriver.exe"

# 新增detach配置
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 传入配置初始化driver
driver = webdriver.Chrome(Path, options=chrome_options)

# 后续原有登录、跳转逻辑保持不变
额外注意点
  • 当前alertNumber = wb.app.selection取到的是xlwings的Range对象,并非单元格内的实际值,传入输入框时需要取.value属性,改为alertNumber = wb.app.selection.value,否则会触发参数类型报错。
  • 脚本执行结束后如果不需要保留后台Excel进程,可在代码末尾添加wb.app.quit()清理残留进程,避免无效占用内存。

内容的提问来源于stack exchange,提问作者lakpura.manul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:57:11