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

将Bot函数放入循环后,Selenium脚本二次迭代报Webdriver路径错误

问题原因分析

第二次迭代报错的核心是第二次执行applying_bot时,WebDriver的初始化逻辑出了问题,常见触发场景:

  • 你在applying_bot里调用了driver.quit()销毁了驱动进程,但下次初始化时没有明确指定webdriver可执行文件的路径,仅依赖环境变量时可能出现路径失效的情况;
  • 把webdriver的初始化代码写在了定时任务外部,导致第二次调用时驱动实例已失效;
  • 脚本运行过程中环境变量PATH被意外修改,丢失了webdriver的路径。
解决方案

方案1:每次初始化Driver时明确指定路径

不要依赖环境变量,每次创建driver实例时直接用参数指定可执行文件路径,彻底避免路径问题:

from selenium import webdriver

def applying_bot(target_page):
    # 替换为你本地的webdriver路径,比如ChromeDriver
    driver = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver")
    try:
        # 你的bot业务逻辑:打开页面、元素操作等
        driver.get(target_page)
        # ...其他操作代码
    finally:
        # 确保任务结束后关闭驱动
        driver.quit()

方案2:复用Driver实例(适合短周期重复操作)

如果你的定时任务不需要每次重启浏览器,可以把driver初始化放在循环外部,避免重复创建销毁实例:

from selenium import webdriver
import schedule
import time

if __name__ == '__main__':
    # 提前初始化driver,指定路径
    driver = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver")
    
    def applying_bot(target_page):
        # 复用已有的driver实例
        driver.get(target_page)
        # ...你的操作逻辑
    
    schedule.every(1).minute.do(applying_bot, target_page)
    
    try:
        while True:
            schedule.run_pending()
            time.sleep(1)
    finally:
        # 程序终止时统一关闭driver
        driver.quit()

注意:这种方式长时间运行可能出现内存泄漏或页面状态异常,适合简单、短周期的任务场景。

方案3:用Selenium 4.x+的Service类管理驱动

如果使用Selenium 4及以上版本,推荐用Service类来管理驱动,初始化逻辑更稳定:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

def applying_bot(target_page):
    service = Service("/usr/local/bin/chromedriver")
    driver = webdriver.Chrome(service=service)
    try:
        driver.get(target_page)
        # ...操作逻辑
    finally:
        driver.quit()
额外检查项
  • 确认webdriver版本和浏览器版本完全匹配,版本不兼容也可能触发初始化错误;
  • 可以在applying_bot开头打印环境变量PATH,确认第二次执行时路径是否包含webdriver目录:
import os

def applying_bot(target_page):
    print(os.environ.get("PATH"))  # 检查路径是否正常
    # ...后续初始化逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:12:22