Node.js 未找到使用Selenium:Chrome驱动程序的AWS Lambda Nodejs 12.x

Node.js 未找到使用Selenium:Chrome驱动程序的AWS Lambda Nodejs 12.x,node.js,aws-lambda,selenium-chromedriver,Node.js,Aws Lambda,Selenium Chromedriver,当我运行nodejs 12.x代码调用selenium时,我得到了下面的错误 在目录结构的顶层,有index.js文件、lib文件夹和node_modules文件夹 我正在Mac上准备代码,然后压缩它,上传到S3并在Lambda中运行 我的chrome和chromedriver可执行文件应该在哪里?我不认为我可以使用npm来安装它们,因为我认为我需要linux版本才能在Lambda中运行 这就是我遇到的错误: { “errorType”:“Error”, “errorMessage”:“在当前路

当我运行nodejs 12.x代码调用selenium时,我得到了下面的错误

在目录结构的顶层,有index.js文件、lib文件夹和node_modules文件夹

我正在Mac上准备代码,然后压缩它,上传到S3并在Lambda中运行

我的chrome和chromedriver可执行文件应该在哪里?我不认为我可以使用npm来安装它们,因为我认为我需要linux版本才能在Lambda中运行

这就是我遇到的错误:

{ “errorType”:“Error”, “errorMessage”:“在当前路径上找不到ChromeDriver。请从下载最新版本的ChromeDriver,并确保它可以在您的路径上找到。”, “跟踪”:[ “错误:在当前路径上找不到ChromeDriver。请从下载最新版本的ChromeDriver,并确保它可以在您的路径上找到。”, “在新的ServiceBuilder(/var/task/node_modules/selenium webdriver/chrome.js:232:13)”中, “在getDefaultService(/var/task/node_modules/selenium webdriver/chrome.js:321:22)”中, “在Function.createSession(/var/task/node_modules/selenium webdriver/chrome.js:695:44)”中, “在createDriver(/var/task/node_modules/selenium webdriver/index.js:155:33)”中, “在Builder.build(/var/task/node_modules/selenium webdriver/index.js:662:16)”中, “at Runtime.exports.handler(/var/task/index.js:38:26)”, “at Runtime.handleOnce(/var/Runtime/Runtime.js:66:25)” ] }

这是我的代码

'use strict';

exports.handler = async (event, context, callback) => {
    var webdriver = require('selenium-webdriver');    
    var chrome = require('selenium-webdriver/chrome');
    var builder = new webdriver.Builder().forBrowser('chrome');
    var chromeOptions = new chrome.Options();
    const defaultChromeFlags = [
        '--headless',
        '--disable-gpu',
        '--window-size=1280x1696', // Letter size
        '--no-sandbox',
        '--user-data-dir=/tmp/user-data',
        '--hide-scrollbars',
        '--enable-logging',
        '--log-level=0',
        '--v=99',
        '--single-process',
        '--data-path=/tmp/data-path',
        '--ignore-certificate-errors',
        '--homedir=/tmp',
        '--disk-cache-dir=/tmp/cache-dir'
    ];

    chromeOptions.setChromeBinaryPath("/var/task/lib/chrome");
    chromeOptions.addArguments(defaultChromeFlags);

    builder.setChromeOptions(chromeOptions);

    //*****this is the problem line****//
    var driver = builder.build(); 

    driver.get(event.url);
    driver.getTitle().then(function(title) {

        console.log("Page title for " + event.url + " is " + title)
        callback(null, 'Page title for ' + event.url + ' is ' + title);
    });

    driver.quit();
};
选中此项:

欢迎来到lambda selenium项目!本项目的目的是展示如何将SeleniumWebDriver与AmazonWebServices(AWS)Lambda计算服务结合使用

Lambdium使用带有无头铬的Selenium Webdriver在AWS Lambda上运行用JavaScript编写的Webdriver脚本。

检查以下内容:

欢迎来到lambda selenium项目!本项目的目的是展示如何将SeleniumWebDriver与AmazonWebServices(AWS)Lambda计算服务结合使用


Lambdium使用Selenium Webdriver和Headless chrome在AWS Lambda上运行用JavaScript编写的Webdriver脚本。

您可以使用chrome AWS Lambda包在Lambda函数中运行Headless,根据文档,将使用512 MB的ram

您可以使用chrome aws lambda软件包在lambda函数中无头运行,根据文档,将使用512 MB的ram