NodeJS 剧作家:每次点击后进行屏幕截图

q1qsirdb  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(97)

我是playwright的新手。我希望我能用page.evaluate实现这一点,因为在文档中我读到“page.evaluate()API可以在网页的上下文中运行JavaScript函数,并将结果带回Playwright环境”。
下面是我的尝试,它给出了“TypeError:listner不是函数”

const listner =  await page.evaluate(()=>{
        return document.body.addEventListener;
    });
    listner('click',()=>{
        //here i plan to call page.screenshot method
    })

任何想法我做错了什么或如何实现这一点。

busg9geu

busg9geu1#

我会为click创建addEventListener并使用page.on监听它。
这里有一个例子,记录所有点击10秒内在谷歌主页

import { test } from "@playwright/test";

test(`StackOverflow`, async ({ page }) => {
  await page.addInitScript(() => {
    window.addEventListener("click", () => console.log("customClickEvent"));
  });

  page.on("console", (message) => {
    if (message.text() === "customClickEvent") {
      page.screenshot({ path: `test-results/${Math.floor(new Date().getTime() / 1000)}.png` });
    }
  });

  await page.goto("https://www.google.com/");
  await page.waitForTimeout(10_000);
});

相关问题