在AWS Lambda Node.js 10.x Runtime中使用selenium-webdriver可能会引发冲突错误。这是因为AWS Lambda的环境中缺少一些必需的依赖项。以下是解决此问题的一种方法:
在本地安装必要的依赖项:
npm install selenium-webdriver
npm install chrome-aws-lambda
将以下代码示例放在Lambda函数的处理程序中:
const chrome = require('chrome-aws-lambda');
const webdriver = require('selenium-webdriver');
const chromeOptions = chrome.options;
chromeOptions.binary = chrome.path;
chromeOptions.headless = true;
exports.handler = async (event, context) => {
let driver;
try {
driver = new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(chromeOptions)
.build();
// 使用driver执行你的代码逻辑
} catch (error) {
// 处理错误
} finally {
if (driver) {
await driver.quit();
}
}
};
构建和部署Lambda函数: 将代码打包并上传到AWS Lambda。
这样,你的AWS Lambda函数就可以在Node.js 10.x Runtime中与selenium-webdriver一起正常运行了。请注意,这个解决方法假设你已经正确地设置了AWS Lambda函数以使用Node.js 10.x Runtime和所需的IAM权限。