Я новичок в кукловоде.Я использую скрипт для входа на сайт.Если имя пользователя или пароль неверны, я хочу записать консольное сообщение в файл И выйти с номером ошибки.Это число важно, потому что оно будет использоваться в Excel VBA.Я использую пакетный файл (Windows) для запуска сценария node.js и использую функцию в начале сценария для добавления сообщения консоли.
Я запускаю пакетный файл для запуска сценария:
node C:\*my-path*\node-script.js
exit /b %errorlevel%
Я вижу сообщение в консоли, но в файле журнала не все сообщение об ошибке, потому что process.exit (1) закрывает процедуру перед ним.
Этофункция для добавления сообщений console.log:
fs.unlinkSync("./tmp/node-js.log");
console.log = function(msg) {
fs.appendFile("./tmp/node-js.log", msg+'\r\n', 'ascii', function(err) {
if(err) {
return trueLog(err);
}
});
trueLog(msg);
И затем, это код для входа в систему:
await page.goto('https://google-wrong.com/', { //a wrong url to test
waitUntil: 'networkidle2',
timeout: 10000
}).catch(error => {
throw (console.log('\r\n'+ 'JAVASCRIPT * Wrong Url ! * ' + error)), process.exit(1) });
Итак, если я использую browser.close () вместо process.exit (1) я могу добавить сообщение целиком, но не могу выйти с кодом ошибки;это мой console.log:
> Open browser in memory... Done!
> Connect to google-wrong.com... Error!
> JAVASCRIPT * Wrong Url ! * Error: net::ERR_NAME_NOT_RESOLVED at https://google-wrong.com/
И в командной строке Dos я вижу:
> exit /b 0
Если я использую process.exit (1), я вижу "выход сошибка "номер:
выход / b 1
... но я не могу записать все сообщение:
> Open browser in memory... Done!
> Connect to google-wrong.com... Error
Любые идеи?Заранее спасибо, и извините за мой плохой английский, я надеюсь, что прояснился.