Chrome 如何在puppeteer中测试navigator.share()?

pod7payv  于 2023-08-01  发布在  Go
关注(0)|答案(1)|浏览(153)

我正在使用puppeteer来完成一些自动化测试,但不知道如何测试navigator.share()函数在用户单击后是否正常运行。

3xiyfsfu

3xiyfsfu1#

如果你想测试navigator.share()函数是否被调用,你可以在浏览器上下文中模拟它,并检查模拟函数是否在操作后被调用,如

await page.evaluateOnNewDocument(() => {
    window['isNavigatorShareCalled'] = false;
    window.navigator.share = async (data) => {
      window['isNavigatorShareCalled'] = true;
      window['shareData'] = data;
    };
  });

  await page.goto(yourSite);

  await page.waitForSelector(trigger).then(el => el.click());

  const isShareCalled = await page.evaluate(() => {
    return window['isNavigatorShareCalled'];
  });

  expect(isShareCalled).toBe(true);
  // check data if needed

字符串
如果你需要调用native share,你可以在mock中调用。

相关问题