【发布时间】:2021-12-28 17:43:50
【问题描述】:
我写了以下函数
async function getMatches(page, eventCount) {
await page.waitForFunction((eventCount) => {
let newCount = document.querySelectorAll('ms-event.grid-event').length
console.log(eventCount) // this logs as '#document' on the chromium console!
if (eventCount != newCount) {
return true
} else {
return false
}
}, {}, eventCount)
}
// function call
await getMatches(page, 0)
其中 evenCount 是一个数字。这应该等待新的网格元素加载并仅在加载时才解析(newCount 将不同于作为输入传递的 eventCount)。
但是,该函数甚至不将 eventCount 识别为输入并将其记录为整个 html 文档(在 chromium 控制台内)。
这使函数立即解析,而不是等待新元素加载。
关于为什么会发生这种情况的任何线索?
【问题讨论】:
-
你能分享一个minimal reproducible example,显示你定义
eventCount的位置吗? -
我在原帖中编辑了代码,希望现在更清楚了。请注意,无论是通过 eventCount 变量还是直接传递实际数字,我都会遇到相同的#document 问题
-
我看不出这不应该起作用的原因,所以它仍然无法重现。您提到in an answer 在重新安装之前和之后运行的 Puppeteer 版本是什么?
标签: javascript puppeteer