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

如何在Python3.8+/3.9版本的AWS Lambda中运行Selenium

AWS Lambda Python3.7+ 运行Selenium解决chromedriver路径问题

问题核心

报错'chromedriver' executable needs to be in PATH的本质原因:

  • Lambda默认环境变量PATH不包含自定义层中chromedriver的存放路径
  • 自定义层打包结构错误,导致chromedriver未被放置在Lambda可识别的目录
  • Selenium版本升级后,初始化参数格式发生变化(旧版chrome_options参数已被弃用)

解决步骤

1. 修正自定义层打包结构

Chromedriver层

  • 下载与Lambda架构(x86_64/arm64)匹配的chromedriver,版本需和headless-chromium完全一致
  • 将chromedriver直接放在压缩包根目录(禁止嵌套文件夹),命名为chromedriver,压缩成chromedriver.zip
  • 提前在Linux环境下给chromedriver添加可执行权限:chmod +x chromedriver

Selenium Python层

  • 创建目录结构:python/lib/pythonX.X/site-packages(X.X对应Lambda使用的Python版本,如3.8)
  • 将Selenium安装到该目录:pip install selenium -t python/lib/python3.8/site-packages/
  • 压缩整个python文件夹为selenium-layer.zip

2. 修正Lambda代码

针对Selenium 4.x版本,使用Service类指定chromedriver绝对路径,同时更新参数格式:

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

def lambda_handler(event, context):
    options = Options()
    options.binary_location = '/opt/headless-chromium'
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    options.add_argument('--single-process')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--disable-gpu')
    options.add_argument('--window-size=1920,1080')

    # 明确指定chromedriver的绝对路径
    service = Service(executable_path='/opt/chromedriver')
    driver = webdriver.Chrome(service=service, options=options)
    
    try:
        driver.get('https://www.google.com/')
        title = driver.title
        response = {
            "statusCode": 200,
            "body": title
        }
    finally:
        driver.quit()  # 确保浏览器资源被正确释放

    return response 

3. 额外检查项

  • 确认Lambda函数已添加上述两个自定义层
  • 将Lambda内存配置调整为至少1024MB(headless浏览器运行需要足够内存)
  • 验证chromedriver与headless-chromium的版本完全匹配(版本不兼容会导致启动失败)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:13:22