是的,不使用Chrome扩展程序puppeteer-recorder也可以自动记录事件并生成puppeteer脚本。下面是一个示例代码,说明了如何使用puppeteer库来实现此功能:
const puppeteer = require('puppeteer');
async function recordEvents(url) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);
// 创建一个空的脚本
let script = '';
// 监听页面上的所有事件,记录事件处理程序并生成相应的脚本代码
page.on('request', request => {
if (request.method() === 'POST') {
script += `await page.waitForRequest('${request.url()}');\n`;
script += `await page.setRequestInterception(true);\n`;
script += `await page.on('request', (request) => {\n`;
script += ` if (request.url() === '${request.url()}') {\n`;
script += ` request.continue();\n`;
script += ` }\n`;
script += `});\n`;
}
});
page.on('response', response => {
if (response.request().method() === 'POST') {
script += `await page.waitForResponse('${response.url()}');\n`;
script += `await page.setRequestInterception(true);\n`;
script += `await page.on('request', (request) => {\n`;
script += ` if (request.url() === '${response.url()}') {\n`;
script += ` request.continue();\n`;
script += ` }\n`;
script += `});\n`;
}
});
await browser.close();
// 打印生成的脚本
console.log(script);
}
recordEvents('https://example.com');
这个示例代码中,我们使用puppeteer库创建了一个浏览器实例并导航到指定的URL。然后,我们通过监听页面上的请求和响应事件来记录事件处理程序并生成相应的脚本代码。
在示例代码中,我们只记录了POST请求的事件处理程序。你可以根据需要调整代码来记录其他类型的事件。生成的脚本将打印到控制台上,你可以将其保存到文件中以后使用。
请注意,这只是一个简单的示例,你可能需要根据具体的需求对代码进行修改和改进。