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

Azure Functions Python中Chrome Driver启动异常(DevToolsActivePort不存在)求助

解决Azure Functions中Selenium Chrome启动失败的方案

1. 修正Selenium初始化参数

Selenium 4.x版本已废弃chrome_options参数,需换成options:

driver = webdriver.Chrome(chromedriverpath, options=chrome_options)

2. 调整ChromeOptions配置(核心修复)

针对DevToolsActivePort错误,更新参数配置并移除无效项:

chrome_options = Options()
chrome_options.add_argument('--headless=new')  # Selenium 4.3+推荐的新版无头模式,稳定性更强
chrome_options.add_argument("--window-size=1920,1080")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-gpu")  # Linux环境无头模式必需参数
chrome_options.add_argument("--remote-debugging-port=9222")  # 强制指定调试端口,解决端口文件缺失问题
chrome_options.add_argument("--user-data-dir=/tmp/chrome-user-data")  # 指定临时用户目录,避免权限冲突
chrome_options.binary_location = "/tmp/HttpTrigger_Helper/chrome-linux/chrome"

注意:--start-maximized在无头模式下无效,直接用--window-size指定窗口尺寸即可。

3. 给Chrome和ChromeDriver添加执行权限

解压后的文件默认可能没有执行权限,需在代码中手动赋予:

import os

# 给chromedriver赋执行权限
os.chmod(chromedriverpath, 0o755)
# 给Chrome主程序赋执行权限
chrome_bin = "/tmp/HttpTrigger_Helper/chrome-linux/chrome"
os.chmod(chrome_bin, 0o755)

4. 检查Azure环境限制

  • 确保/tmp目录下Chrome和ChromeDriver的总大小不超过Azure Functions临时目录限额(默认5GB)
  • 函数每次执行时,确认下载的浏览器和驱动文件存在,避免因临时目录自动清理导致文件缺失

5. 验证版本完全匹配

确认Chrome浏览器版本(执行/tmp/HttpTrigger_Helper/chrome-linux/chrome --version)和ChromeDriver版本(chromedriver --version)完全一致,版本号需精确到最后一位,微小版本差异都可能导致启动失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:15:31