Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2021, 11:27
Новичок на форуме
Отправить личное сообщение для Softy Посмотреть профиль Найти все сообщения от Softy
 
Регистрация: 10.05.2021
Сообщений: 5

puppeteer не запускается 2 и более процессов, с папкой пользователя
Возникла проблема.
при попытке запустить 2 процесса с откл. HEADLESS (отображение браузера во время выполнения), вылазит ошибка. (причем второй экземпляр пытается открыть вкладки в уже работающем хроме. т.е. не запускает новый экземпляр)
[17664:7324:0510/133157.340:ERROR:cache_util_win.cc(20)] Unable to move the cache: �������� � �������. (0x5)
[17664:7324:0510/133157.340:ERROR:cache_util.cc(144)] Unable to move cache folder C:\Users\maxx-\AppData\Local\Chromium\User Data\ShaderCache\GPUCache to C:\Users\maxx-\AppData\Local\Chromium\User Data\ShaderCache\old_GPUCache_000
[17664:7324:0510/133157.340:ERROR:disk_cache.cc(184)] Unable to create cache
[17664:7324:0510/133157.340:ERROR:shader_disk_cache.cc(606)] Shader Cache Creation failed: -2


Браузер запускается с указанием папки пользователя (чтобы подключались дополнения). Причем во втором экземпляре указываю отдельный каталог. а он всё равно обращается к Chromium\User Data\, пробовал так же запускать браузер из отдельного каталога.(копия папки с браузером)

Пример Launcher.js из папки пупитера
async launch(options = {}) {
        const { ignoreDefaultArgs = false, args = [], dumpio = false, executablePath = null, pipe = false, env = process.env, handleSIGINT = true, handleSIGTERM = true, handleSIGHUP = true, ignoreHTTPSErrors = false, defaultViewport = { width: 800, height: 600 }, slowMo = 0, timeout = 30000, } = options;
        const profilePath = `C:\\Users\\maxx-\\AppData\\Local\\Chromium\\User Data1\\`);
        const chromeArguments = [];
        if (!ignoreDefaultArgs)
            chromeArguments.push(...this.defaultArgs(options));
        else if (Array.isArray(ignoreDefaultArgs))
            chromeArguments.push(...this.defaultArgs(options).filter((arg) => !ignoreDefaultArgs.includes(arg)));
        else
            chromeArguments.push(...args);
        let temporaryUserDataDir = null;
        if (!chromeArguments.some((argument) => argument.startsWith('--remote-debugging-')))
            chromeArguments.push(pipe ? '--remote-debugging-pipe' : '--remote-debugging-port=0');
        if (!chromeArguments.some((arg) => arg.startsWith('--user-data-dir'))) {
            temporaryUserDataDir = await mkdtempAsync(profilePath);
            chromeArguments.push(`C:\\Users\\maxx-\\AppData\\Local\\Chromium\\User Data1\\`);
        }

Последний раз редактировалось Softy, 10.05.2021 в 11:40.
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2021, 22:51
Новичок на форуме
Отправить личное сообщение для Softy Посмотреть профиль Найти все сообщения от Softy
 
Регистрация: 10.05.2021
Сообщений: 5

оказалось всё просто.
defaultArgs(options = {}) {
        const chromeArguments = [
			'--user-data-dir=C:\\Users\\maxx-\\AppData\\Local\\Chromium\\User Data88\\',
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск