Перезапустите JS-скрипт после TimeoutError - PullRequest
0 голосов
/ 21 января 2019

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

Я хотел бы автоматически перезапустить программу, когда она сталкивается с этой ошибкой или любой ошибкой.

Я пытался вечно, но он просто перезапускается, если я вручную закрываю программу после ошибки ...

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Поскольку вы используете puppeteer и предполагаете, что вы следуете структуре async/await, как показано в документах, вы можете заключить селектор .waitFor / в функцию внутри блока try catch и при захвате снова вызвать функцию.Вы также можете использовать глобальную переменную для ограничения количества повторных попыток.

0 голосов
/ 21 января 2019

Ваша проблема - это проблема, которую я решил бы несколькими попытками. Реализуйте обратный вызов OnError и рекурсивно вызовите метод снова с селектором, который не может быть найден.

Чтобы избежать бесконечного цикла, вы можете добавить счетчик и выйти из цикла, как только он достигнет определенного порога.

...