在 puppeteer 中加速 window.setTimeout
Speed up window.setTimeout in puppeteer
我正在加载一个使用各种长时间超时的网络应用程序,在 puppeteer 中,我想跳过所有这些超时。如何快速从网页 return 拨打 setTimeout
的每个电话,无论延迟如何?
覆盖 page.evaluateOnNewDocument
中的 setTimeout
:
await page.evaluateOnNewDocument(() => {
window._real_setTimeout = window.setTimeout;
window.setTimeout = (func, delay, ...args) => {
return window._real_setTimeout(func, 10, ...args);
};
});
如果您的 Web 应用程序使用它,您也可以为 setInterval
做一个类似的版本。请注意,这似乎与 puppeteer 的 page.waitForFunction
混淆(它只执行一次),因此您可能需要使用
恢复真正的功能
window.setTimeout = window._real_setTimeout;
如果你想要真实的行为。
我正在加载一个使用各种长时间超时的网络应用程序,在 puppeteer 中,我想跳过所有这些超时。如何快速从网页 return 拨打 setTimeout
的每个电话,无论延迟如何?
覆盖 page.evaluateOnNewDocument
中的 setTimeout
:
await page.evaluateOnNewDocument(() => {
window._real_setTimeout = window.setTimeout;
window.setTimeout = (func, delay, ...args) => {
return window._real_setTimeout(func, 10, ...args);
};
});
如果您的 Web 应用程序使用它,您也可以为 setInterval
做一个类似的版本。请注意,这似乎与 puppeteer 的 page.waitForFunction
混淆(它只执行一次),因此您可能需要使用
window.setTimeout = window._real_setTimeout;
如果你想要真实的行为。