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

VBA调用Selenium Firefox驱动时出现TimeoutError超时错误如何解决?

问题解决步骤
  • 版本兼容性校验
    你使用的geckodriver v0.30.0要求本地安装的Firefox浏览器版本≥91,如果你的Firefox版本低于该要求,要么升级Firefox到最新正式版,要么降级geckodriver到适配你当前Firefox的版本。如果你使用的是老旧的Selenium Basic封装库,建议降级geckodriver到v0.29.1版本,更高版本的geckodriver和旧版Selenium Basic存在适配问题。
  • 配置驱动与浏览器路径
    将下载好的geckodriver.exe放入系统PATH环境变量包含的目录(例如C:\Windows\System32),确保Selenium可以正常找到驱动文件。如果你的Firefox安装在非默认路径,需要手动指定Firefox可执行文件路径,初始化driver时添加如下代码:
    objFireFox.BinaryLocation = "你的Firefox.exe完整路径"
  • 本地网络规则检查
    该报错本质是geckodriver无法和Firefox的本地监听端口建立通信,先暂时关闭本地防火墙测试是否恢复正常,如果关闭后问题解决,将geckodriver和Firefox加入防火墙白名单即可。如果你的系统开启了全局代理,将127.0.0.1加入代理忽略列表,避免本地通信走代理导致连接失败。
  • 修正代码逻辑错误
    解决连接问题后需要调整现有代码的两处错误:
    1. FindElementsByClass用于匹配多个元素返回列表,匹配单个元素应该使用FindElementByClass,且该方法不支持传入多个空格分隔的类名,多类名匹配请使用CSS选择器
    2. 建议先配置全局页面加载超时,再调用Get方法访问链接
      修正后的代码示例:
    Set objFireFox = CreateObject("Selenium.FirefoxDriver")
    objFireFox.Timeouts.PageLoad = 20000
    objFireFox.Get "https://chartink.com/screener/practical-swing-trading-stock-scanner"
    objFireFox.FindElementByCss(".btn.btn-default.buttons-copy.buttons-html5.btn-primary").Click
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:06:03