无法让 selenium 在我的 python lambda 中工作

问题描述 投票:0回答:1

在 python 12 运行时环境中使用 selenium 4.19。

这是从使用 selenium 的函数中截取的代码:

    chrome_options = Options()
    chrome_options.add_argument("--headless")  # Run Chrome in headless mode
    chrome_options.add_argument("--disable-gpu")  # Disable GPU hardware acceleration
    chrome_options.add_argument("--no-sandbox")  # Disable sandbox mode
    chrome_options.add_argument("--disable-dev-shm-usage")  # Disable shared memory usage
    chrome_options.add_argument("--disable-extensions")  # Disable extensions

    # Create a webdriver instance with headless option
    driver = webdriver.Chrome(options=chrome_options)  # Navigate to the webpage
    driver.get(KWENTA_LIQUIDATION_PRICE_URL)

    wait = WebDriverWait(driver, 10)  # Wait up to 10 seconds
    tokens = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "chakra-text.css-2utkvs")))

这是错误消息:

[WARNING]    2024-04-08T19:43:02.401Z    da9c31d6-1553-417f-8b45-8589a0b2adad    Cache folder (/home/sbx_user1051/.cache/selenium) cannot be created: Read-only file system (os error 30)

尝试使用无头浏览器和我在网上找到的其他标头,但似乎都不起作用。

selenium-webdriver aws-lambda python-3.12
1个回答
0
投票

从错误消息中的路径来看,问题似乎出在 Selenium Manager 上。它下载请求的驱动程序并将其(和其他文件)存储在该

.cache
路径中。如果您无法更改该路径的权限,您始终可以通过设置
cache-path
,

选择不同的缓存路径
CLI 参数 配置文件 环境变量 描述
--缓存路径 缓存路径=“CACHE_PATH” SE_CACHE_PATH=CACHE_PATH 本地文件夹用于存储下载的资源(驱动程序和浏览器)、本地元数据和配置文件。有关详细信息,请参阅下一节。默认值:~/.cache/selenium。对于 TOML 配置文件中的 Windows 路径,需要双反斜杠(例如,C
© www.soinside.com 2019 - 2024. All rights reserved.