javascript - Puppeteer 键入触发 aws lambda 中的错误
问题描述
我正在创建一个在 AWS Lambda 函数上运行的抓取,但是当我在站点上键入查询时,它会触发一个错误,我无法在我的本地环境中重现该错误。有谁知道会是什么?
代码:
query: async (name, birthDate, cpf) => {
logger.info('QUERY_PARAMS_AP', '', [name, birthDate, cpf]);
try {
await page.waitFor(5000);
await page.type('input[id="formNome"]', name);
await page.type('input[id="formDataDeNascimento"]', birthDate);
await page.type('input[id="formCpf"]', cpf);
...
该错误是在 page.type 方法中触发的。
触发错误如下:
{ Error: Protocol error (Input.dispatchKeyEvent): Target closed.
at Promise (/var/task/node_modules/puppeteer-core/lib/Connection.js:183:56)
at new Promise (<anonymous>)
at CDPSession.send (/var/task/node_modules/puppeteer-core/lib/Connection.js:182:12)
at Keyboard.up (/var/task/node_modules/puppeteer-core/lib/Input.js:137:24)
at Keyboard.<anonymous> (/var/task/node_modules/puppeteer-core/lib/helper.js:112:23)
at Keyboard.press (/var/task/node_modules/puppeteer-core/lib/Input.js:180:16)
-- ASYNC --
at Keyboard.<anonymous> (/var/task/node_modules/puppeteer-core/lib/helper.js:111:15)
at Keyboard.type (/var/task/node_modules/puppeteer-core/lib/Input.js:162:20)
-- ASYNC --
at Keyboard.<anonymous> (/var/task/node_modules/puppeteer-core/lib/helper.js:111:15)
at ElementHandle.type (/var/task/node_modules/puppeteer-core/lib/JSHandle.js:363:31)
-- ASYNC --
at ElementHandle.<anonymous> (/var/task/node_modules/puppeteer-core/lib/helper.js:111:15)
at DOMWorld.type (/var/task/node_modules/puppeteer-core/lib/DOMWorld.js:422:18)
-- ASYNC --
at Frame.<anonymous> (/var/task/node_modules/puppeteer-core/lib/helper.js:111:15)
at Page.type (/var/task/node_modules/puppeteer-core/lib/Page.js:1103:29)
at Object.query (/var/task/sources/AP/scraping.js:102:18)
message: 'Protocol error (Input.dispatchKeyEvent): Target closed.' } }
解决方案
推荐阅读
- talend - 是否可以使用 TOS for Big Data 从共享路径访问源 excel 文档
- sql - Oracle 10g aggregating from two different rows and columns into a single row
- php - 我想使用 php 中的函数打印特定数量的用户选择的数学表
- ipfs - 错误:ipfs 配置文件已存在
- python - 可以将 OpenMP 与 python 的 concurrent.futures.ThreadPoolExecutor 混合使用吗?
- python - 我可以在 python2/3 中同时使用多种不同方法的多处理吗
- javascript - 仅验证一个字段 ng-required angularjs
- php - Symfony 3.4 中的 Doctrine 2.2 日期时间字符串转换
- c - 如何让 valgrind 报告“绝对丢失”发生的“位置”
- haskell - 使用 GADT 的类似仆人的实现