小编Tys*_*aul的帖子

带有selenium-webdriver的AWS Lambda Node.js 10.x运行时错误

几天前,我们收到了有关“ Lambda操作通知”的通知,将我们的Node.js 8.10运行时更新为Node.js 10.x运行时。

响应此通知,我们在开发系统中安装了Node.js版本v10.16.3,并测试了现有代码。我们发现代码在我们的开发系统中运行良好,但是当我们在带有Node.js 10.x运行时的AWS Lambda中测试相同的代码时,出现以下错误:

2019-10-28T12:03:31.771Z 8e2472b4-a838-4ede-bc70-a53aa41d9b79 INFO错误:服务器在EarlyTermination.catch.e(/ var / task / node_modules / selenium-webdriver / remote / index。 js:251:52)在process._tickCallback(内部/进程/next_tick.js:68:7)

'aws-sdk','selenium-webdriver'npm软件包和google chrome二进制文件是我们项目中唯一使用的依赖项。

我们的项目具有以下文件结构。

/var/task/
??? index.js
??? lib
?   ??? chrome
?   ??? chromedriver
?   ??? libgconf-2.so.4
?   ??? libORBit-2.so.0
?   ??? libosmesa.so
??? node_modules
    ??? selenium-webdriver
    ??? ...
Run Code Online (Sandbox Code Playgroud)

由于此代码不会在我们的开发系统中引发任何错误,因此我们怀疑它与新的运行时有关。

我们尝试使用setChromeBinaryPath()设置二进制路径

这是我们正在使用的代码。调用build()方法时发生错误。

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', // …
Run Code Online (Sandbox Code Playgroud)

node.js selenium-chromedriver selenium-webdriver aws-lambda

2
推荐指数
1
解决办法
132
查看次数