Node.js 未找到使用Selenium:Chrome驱动程序的AWS Lambda Nodejs 12.x
当我运行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)” ] } 这是我的代码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”:“在当前路
'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