javascript - “错误:节点不可见或不是 HTMLElement”。傀儡师
问题描述
我添加了一个选项来滚动页面到底部。有了这个 npm。
const scrollPageToBottom = require('puppeteer-autoscroll-down');
在它之后,我有一个循环应该点击页面上的许多元素但是在我使用 npm 向下滚动后,我得到了这个错误:
错误:节点不可见或不是 HTMLElement
(async () => {
try {
//Launching Puppeteer
const browser = await puppeteer.launch({
headless: false,
});
const page = await browser.newPage();
//going to new Page
await page.goto(
'https://translatewiki.net/wiki/Special:Translate?group=%21additions&language=fr&filter=%21translated&action=translate'
);
//waiting for the Js to load(DOM)
await page.waitForSelector('.tux-message');
await scrollPageToBottom(page, 5000, 2000);
console.log('finish scroll');
//Clicking on Questions to Load the suggestions
const texts = await page.$$(` div.eight.columns.tux-list-message`);
for (const text of texts) {
await new Promise((r) => setTimeout(r, 100));
await text.click();
}
} catch (err) {
console.log(err);
}
})();
真不知道为什么会这样希望高手帮帮我。
解决方案
也许试试
await page.evaluate((element) => { element.click(); }, text);
代替
await text.click();
如果我没记错的话,puppeteerelementHandle.click()
是一个更复杂的操作,需要一些额外的检查,所以element.click()
当前者失败时,有时一个更简单的评估 Web API 就足够了。
推荐阅读
- android-tv - 从 ExoPlayer 获取 403 响应代码错误
- ios - 尝试在 Swift 中每 120 秒添加一个 URL 自动重定向
- c# - Facebook,构建手动登录流程 - C# SDK
- javascript - jQuery.when 是否接受本机 Promise 对象?
- database - How to open mongo-db dump file?
- ios - iOS 12 上的 CIDepthBlurEffect 渲染问题
- reactjs - 尝试在 React Js 中执行第二次数据获取时,为什么我得到无法访问的代码?
- r - 将列表值存储在具有不相等行的 data.frame 中
- stata - 如何格式化图例中的数字标签?
- tornadofx - 删除项目上的自定义单元格格式 ListView TornadoFx