【问题标题】:Puppeteer reload page until element is availablePuppeteer 重新加载页面,直到元素可用
【发布时间】:2021-10-05 04:07:08
【问题描述】:

我正在使用 puppeteer,我需要不断刷新页面,直到请求的元素生效,“按钮”是我需要的元素。 我尝试了等待,但它不起作用并给了我这个错误:

Error: Unknown value for options.waitUntil: JSHandle@node

这是我尝试过的

const [button] = await page.$x("//a[contains(., 'Denim')]");
    if (button) {
    await button.click();
    }
    
    await page.reload({ waitUntil: ["networkidle0", "domcontentloaded", button] });

【问题讨论】:

标签: javascript html node.js puppeteer


【解决方案1】:

在这种情况下,错误非常明显。您是在告诉 puppeteer 等待这 3 件事:["networkidle0", "domcontentloaded", button]。前 2 个是可接受的选项。第三个不是。 button 是对可以在 puppeteer 代码中使用的 DOM 元素的引用。 (或JSHandle@node)。根据docs,这不是一个可行的选择。

这里还有一点:您不会共享所有代码,因此我们必须假设这发生在某种循环中,并且调用之间存在某种超时。照原样,此代码将检查此按钮,如果找到则单击该按钮,然后准确地重新加载页面 1 次。 Reload 在搜索一些反馈时不会多次重新加载页面。它只重新加载一次。 waitUntil 选项只定义了返回的 Promise 应该何时解决。

祝你好运!

【讨论】:

    猜你喜欢
    • 2011-04-10
    • 2019-07-03
    • 1970-01-01
    • 2019-08-09
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多