Я создал простую программу для автоматической загрузки файлов на сайт.Я использую Puppeteer для просмотра без входа в систему и загрузки.Я прислушиваюсь к изменениям в панели загрузки, вводя наблюдателя мутаций в dom и регистрируя его в консоли.
const puppeteer = require('puppeteer');
var path = require('path');
var glob = require("glob");
async function upload(file_path, file_index) {
// launch puppeteer
const browser = await puppeteer.launch({
headless: true,
});
const page = await browser.newPage();
// some code here to navigate then upload to the website
/*****************************************************
UPLOADING CODE HERE...
1. UPLOAD FILE
2. THEN LOG THE PROGRESS TO CONSOLE
there is some code here but i will not include it here to make it short
******************************************************/
// everytime a change has been log in console
await page.on('console', async (response) => {
//fetch the progress percentage
var percent = await page.$eval('#progressbar', el => el.innerText);
// log the progress
console.log('File ' + file_index + ' Percent uploaded: ' + percent)
});
}
// lets say there are 5 files in the server
glob("files/*.mp4", function(er, files) {
files.forEach(function(file, video_index) {
upload(file, video_index);
});
});
Загрузка работает отлично, но проблема заключается в выводе прогресса в консоль.Моя программа продолжает писать новую строку, а не создавать параллельные строки прогресса.Допустим, я буду загружать 5 файлов асинхронно.Программа выводит следующее:
![](https://i.stack.imgur.com/UCKpp.png)
Что я хочу видеть, это:
![enter image description here](https://i.stack.imgur.com/t41Mw.png)