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

AWS Lambda中运行Python Selenium遇AttributeError错误求助

解决AWS Lambda容器中Selenium脚本的AttributeError问题

错误原因

你遇到的AttributeError: 'NoneType' object has no attribute 'split',根源是webdriver-manager在容器环境中无法检测到你手动安装的Chrome浏览器版本。

你的Dockerfile已经预先下载了固定版本的Chrome(122.0.6261.111)和对应chromedriver,但webdriver-manager默认会从系统默认路径查找Chrome并获取版本号,而容器中Chrome安装在/opt/chrome,不在其检测范围内,导致determined_browser_version返回None,进而触发split操作的错误。

解决方案

既然你已经手动同步了Chrome和chromedriver的版本,完全不需要依赖webdriver-manager管理驱动,直接指定本地的Chrome二进制文件和chromedriver路径即可:

1. 修改WebDriver初始化代码

更新models/core/web_driver.py,移除ChromeDriverManager的使用,直接指定本地路径:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


class WebDriver:
    def __init__(self, url, delay) -> None:
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--headless=new")
        # 指定容器中Chrome的二进制文件路径
        chrome_options.binary_location = "/opt/chrome/chrome"
        # 指定预下载的chromedriver路径
        service = Service(executable_path="/opt/chromedriver-linux64/chromedriver")

        self.chrome = webdriver.Chrome(service=service, options=chrome_options)

        self.chrome.get(url)
        self.wait = WebDriverWait(self.chrome, delay)

    def load_elements(self, main_filter):
        return self.wait.until(
            EC.presence_of_all_elements_located((By.CLASS_NAME, main_filter))
        )

    def quit(self):
        self.chrome.quit()

2. 可选:移除不必要的依赖

由于不再需要webdriver-manager,可以从requirements.txt中删除该行:

bs4==0.0.2
dynamodb-json==1.3
kink==0.7.0
pynamodb==6.0.0
selenium==4.18.1
# 移除下面这行
# webdriver-manager==4.0.1

验证逻辑

  • 本地环境正常是因为webdriver-manager能找到系统默认安装的Chrome版本;
  • 容器中修改后,脚本直接使用你预下载的对应版本Chrome和chromedriver,跳过版本检测步骤,彻底解决错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:05:18