我正在使用Puppeteer运行Lambda函数。我想单击不同的HTML元素。当我在本地运行代码时,它工作正常并且可以单击,但是在Lambda上运行时,我得到了:
错误:节点不可见或不是HTMLElement
我已设置:
const browser = await puppeteerLambda.getBrowser({ headless: true, slowMo: 100, args: ['--no-sandbox', '--disable-setuid-sandbox', '--single-process', '--start-fullscreen', '--window-size=1413,749']});
await page.setViewport({ width: 1413, height: 749 });
let path = actions.path;
await page.waitFor(1000);
clicker = await page.$(path);
try {
await clicker.hover();
await clicker.click();
await page.waitFor(1500);
} catch (e) {
console.log('path click error', e);
await mailer.mailError(jobName, e);
}
我认为应该可以通过此视口看到html元素。 我也可以提取click元素的innerText。我可以在本地单击它们。
有什么想法吗?
答案 0 :(得分:0)
此问题已解决:
clicker = await page.$(path);
try {
await page.evaluate((el) => {
return el.click()
}, clicker);
await page.waitFor(1500);
} catch (e) {
console.log('click error', e);
}
可能是 Puppeteer 中的错误,等待clicker.click()无法完成。您也可以随时检查他们的documentation。