电子游戏中的伪人:错误:传递的函数不能很好地序列化

时间:2020-03-28 00:19:43

标签: electron puppeteer

试图为Puppeteer项目提供一个GUI。 我曾考虑过使用Electron,但遇到错误:

Error: Passed function is not well-serializable!

当运行类似Puppeteer的功能时

await page.waitForSelector('.modal', { visible: true });

我在处理page.evaluate()时找到了一种合适的序列化方法,但是在page.waitForSelector()的情况下该如何进行呢?

是否可以根据需要解决Puppeter的API函数?

编辑

我决定重写

await page.waitForSelector('.modal', { visible: true });

使用page.evaluate,这是代码:

// first recreate waitForSelector
  const awaitSelector = async (selector) => {
    return await new Promise(resolve => {
      const selectorInterval = setInterval(() => {
        if ($(selector).is(':visible')) {
          console.log(`${selector} visible`);
          resolve();
          clearInterval(selectorInterval);
        };
      }, 1000);
    });
  }

,然后使用page.evaluate()调用该函数:

// remember to pass over selector's name, in this case it is ".modal"
await page.evaluate('(' + awaitSelector.toString() + ')(".modal");');

0 个答案:

没有答案
相关问题