2

私がやろうとしていること:

ストーリーブック プロジェクトのすべての要素の例のスクリーンショットを取得しようとしています。私がこれをやろうとしている方法は、要素をクリックしてからスクリーンショットを撮り、次のもの、スクリーンショットなどをクリックすることです.

添付のコードは次のとおりです。

test('no visual regression for button', async () => {
  const selector = 'a[href*="?selectedKind=Buttons&selectedStory="]';
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('http://localhost:8080');
  let examples = await page.$$(selector);
  await examples.map( async(example) => {
    await example.click();
    const screen = await page.screenshot();
    expect(screen).toMatchImageSnapshot();
  });
  await browser.close();
});

しかし、このコードを実行すると、次のエラーが発生します。

Protocol error (Runtime.callFunctionOn): Target closed.

  at Session._onClosed (../../node_modules/puppeteer/lib/Connection.js:209:23)
  at Connection._onClose (../../node_modules/puppeteer/lib/Connection.js:116:15)
  at Connection.dispose (../../node_modules/puppeteer/lib/Connection.js:121:10)
  at Browser.close (../../node_modules/puppeteer/lib/Browser.js:60:22)
  at Object.<anonymous>.test (__tests__/visual.spec.js:21:17)
      at <anonymous>
  at process._tickCallback (internal/process/next_tick.js:169:7)

要素がそのコンテキストまたは同様のものを失い、これを回避するためにどの方法を使用すればよいかわからないためだと思います。より深い説明または可能な解決策を提供していただけますか? API ドキュメントはまったく役に立ちません。

4

1 に答える 1