SeleniumBasic v2.0.9.0版本状态及Chrome 103环境适配问题咨询
VBA+SeleniumBasic 网页自动化问题解答
1. SeleniumBasic版本与Chrome兼容性结论
- SeleniumBasic v2.0.9.0是目前公开渠道可获取的最后一个正式发布版本,官方已停止迭代维护。该版本本身的COM调用接口兼容64位Office 365环境,但自带的2.21版ChromeDriver仅适配Chrome 47-50版本,完全不兼容Chrome 103.0.5060.53。
- 直接替换驱动文件的排查思路正确,替换后出现
DevToolsActivePort file does not exist报错属于高版本Chrome适配的典型配置问题,不是驱动替换错误。
2. DevToolsActivePort报错修复步骤
按以下顺序操作可解决该报错:
- 驱动版本对齐
卸载当前已替换的102版ChromeDriver,下载和本地Chrome大、小版本完全匹配的103.0.5060.xx版ChromeDriver,关闭所有Chrome进程、VBA编辑器后,替换C:\Program Files (x86)\SeleniumWrapper路径下的原生ChromeDriver.exe。右键点击替换后的ChromeDriver.exe,打开属性面板,如果存在「解除锁定」选项则勾选确认,给当前Windows用户分配该目录的完全读写权限,避免权限拦截导致驱动无法创建端口通信文件。 - 启动参数补全
不要直接调用无参数的driver.Start方法启动Chrome,启动前追加高版本Chrome必需的启动参数,参考代码如下:Dim chromeDriver As New Selenium.Chrome ' 关闭沙箱、共享内存限制,指定固定调试端口与独立用户配置目录 chromeDriver.AddArgument "--no-sandbox" chromeDriver.AddArgument "--disable-dev-shm-usage" chromeDriver.AddArgument "--remote-debugging-port=9222" chromeDriver.AddArgument "--user-data-dir=C:\SeleniumChromeTemp" chromeDriver.Start "chrome" - 运行权限规避
不要用管理员权限启动Access后运行VBA代码,管理员权限下Chrome的安全机制会主动拦截DevTools端口的本地通信,是触发该报错的高频诱因。
3. 需求实现参考
启动正常后,即可通过标准SeleniumBasic语法完成表单填充、返回值抓取:
- 表单填充:
chromeDriver.FindElementByCss("选择器").SendKeys 待填充的变量值 - 结果抓取:将
chromeDriver.FindElementByXPath("结果元素路径").Text直接赋值给VBA变量即可,复杂场景也可通过chromeDriver.ExecuteScript("return 自定义JS逻辑")直接读取页面上下文的返回结果。
内容的提问来源于stack exchange,提问作者Don Leverton
相关产品推荐
相关产品推荐

