Ускорьте window.setTimeout в кукловоде - PullRequest
0 голосов
/ 12 октября 2018

Я загружаю веб-приложение, которое использует различные длительные тайм-ауты, в кукловоде, и хотел бы пропустить все эти тайм-ауты.Как сделать так, чтобы каждый звонок на setTimeout с веб-страницы возвращался быстро, независимо от задержки?

1 Ответ

0 голосов
/ 12 октября 2018

Переопределить setTimeout в page.evaluateOnNewDocument:

await page.evaluateOnNewDocument(() => {
    window._real_setTimeout = window.setTimeout;
    window.setTimeout = (func, delay, ...args) => {
        return window._real_setTimeout(func, 10, ...args);
    };
});

Вы также можете сделать аналогичную версию для setInterval, если она используется в вашем веб-приложении.Обратите внимание, что это похоже на беспорядок page.waitForFunction кукловода (он выполняется только один раз), поэтому вам может потребоваться восстановить реальную функциональность с помощью

window.setTimeout = window._real_setTimeout;

, если вы хотите реальное поведение.

...