Puppeteer: рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП EPERM рддреНрд░реБрдЯрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдЧре░ 2017  ┬╖  42рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: puppeteer/puppeteer

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:

var puppeteer = require("puppeteer");

puppeteer.launch().then(async browser => {
    let page = await browser.newPage();
    await page.goto('https://google.com');
    await page.screenshot({ path: 'screenshot.png' });
    browser.close();
});

рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:

Error: EPERM: operation not permitted, unlink 'C:\Users\tivac\Desktop\puppeteer-testing\node_modules\puppeteer\.dev_profile1\CrashpadMetrics-active.pma'

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рд╕реЗрдЯ DEBUG=* рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд╣рд╛рдВ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реА рдереАрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред ЁЯШХ

рдХреНрдпрд╛ рдкреНрд░рдердо-рд░рди рдХрд╛ рдЕрдиреБрднрд╡ рдЧреИрд░- DEBUG рдореЛрдб рдореЗрдВ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣реА рд╣реБрдЖ рд╣реИ!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдкреГрд╖реНрда рдЦреБрд▓реЗ рд╣реИрдВ, рддреЛ рдЙрди рд╕рднреА рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред
await page.close(); await browser.close();

await browser.close() рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ @ ivangergo3 рдХреЗ рдЙрддреНрддрд░ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдиреЗ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛ рдХреЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ! ЁЯШД

let pages = await browser.pages()
await Promise.all(pages.map(page =>page.close()))
await browser.close()

12/17/2020 рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

  • рдиреАрдЪреЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдлрд┐рдХреНрд╕реНрдб рдХреЛрд╖реНрдардХ

рд╕рднреА 42 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рдЯреНрдЯрд╛ рд▓рдЧрд╛рдирд╛: рдЖрдкрдиреЗ рдЧрд▓рддреА рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреЛ рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛, рдФрд░ рджреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдардкреБрддрд▓рд┐рдпреЛрдВ рдиреЗ рдХреНрд░реЛрдо рдХреЛ рдПрдХ рд╣реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА - .dev_profile1 ред

рд╣рдореЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдирд╛рдореЛрдВ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХрдардкреБрддрд▓реА рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд░рди рдареАрдХ рдХрд╛рдо рдХрд░реЗрдВред

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ! рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджреНрдпрдкрд┐ рдореИрдВ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЛрдб рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ headless : false рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд░реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ DEBUG рд╕реЗрдЯ рдХрд░рдиреЗ рддрдХ рд╣рд░ рдмрд╛рд░ repro'd, рдЬрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

+1

рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдХрдардкреБрддрд▓реА рдХреЗ рд╕рд╛рде рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ https://github.com/GoogleChrome/puppeteer/#usage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рднреА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЬреЛ рд╕рд┐рд░реНрдл рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ:

const puppeteer = require('puppeteer');

(async () => {
  console.log("Launching browser.");

  const browser = await puppeteer.launch();

  console.log("Closing browser.");

  browser.close();
})();

рдореИрдВрдиреЗ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ node_modules/puppeteer/.dev_profile1 рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рд╣реЛрддреА рд╣реИред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдмрд╕ process.exit(0) рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ - рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА, рдХрд┐рд╕реА рднреА рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдХреНрд░реЛрдорд┐рдпрдо рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдардкреБрддрд▓реА рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд▓рдЧрддреА рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!

рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдбреЗрдореЛ рдЪрд▓рд╛рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд░ рдмрд╛рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд▓рдЧрднрдЧ рджрд╕ рдорд┐рдирдЯ рдмрд╛рдж, рдореБрдЭреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╣реБрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рдлрд▓рддрд╛рдПрдБ рдорд┐рд▓реАрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛, рд╡рд┐рдВрдбреЛрдЬрд╝ 10, рдиреЛрдб v7.10.0, рдХрдардкреБрддрд▓реА 1.0.0ред DEBUG = * рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА

D:\puppeteer>node index.js
fs.js:1081
  return binding.unlink(pathModule._makeLong(path));
                 ^

Error: EPERM: operation not permitted, unlink 'D:\puppeteer\node_modules\puppeteer\.dev_profile1\CrashpadMetrics-active.pma'
    at Object.fs.unlinkSync (fs.js:1081:18)
    at fixWinEPERMSync (D:\puppeteer\node_modules\rimraf\rimraf.js:210:13)
    at rimrafSync (D:\puppeteer\node_modules\rimraf\rimraf.js:310:28)
    at D:\puppeteer\node_modules\rimraf\rimraf.js:341:5
    at Array.forEach (native)
    at rmkidsSync (D:\puppeteer\node_modules\rimraf\rimraf.js:340:26)
    at rmdirSync (D:\puppeteer\node_modules\rimraf\rimraf.js:333:7)
    at fixWinEPERMSync (D:\puppeteer\node_modules\rimraf\rimraf.js:208:5)
    at rimrafSync (D:\puppeteer\node_modules\rimraf\rimraf.js:310:28)
    at ChildProcess.chromeProcess.on (D:\puppeteer\node_modules\puppeteer\lib\Launcher.js:87:7)

+1

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, рд╡рд┐рдВрдбреЛрдЬрд╝ 10, рдиреЛрдб v8.4.0, рдХрдардкреБрддрд▓реА 0.9.0

рд╣рд░ рдХреЛрдИ: рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЯрд┐рдк-рдСрдл-рдЯреНрд░реА рдкрд┐рд▓реНрд▓реЗрдЯрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЗрд╕рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рдВрдбреЛрдЬ 7 x64, рдиреЛрдб .js 8.4.0ред
README.md рд╕реЗ рдЯрд┐рдк-рдСрдлрд╝-рдЯреНрд░реА рдХрдардкреБрддрд▓реА рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЗ рд╕рд╛рде, рдЕрдм рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

(node:1040) UnhandledPromiseRejectionWarning:
Unhandled promise rejection (rejection id: 1):
Error: EPERM: operation not permitted,
unlink 'c:\Windows\Temp\puppeteer_dev_profile-dgXrpD\CrashpadMetrics-active.pma'

(node:1040) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated.
In the future, promise rejections that are not handled
will terminate the Node.js process with a non-zero exit code.

рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝реЛрд▓реНрдбрд░ c:\Windows\Temp\ ред

рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЙрдХ рд╕рд╛рдЗрди рдХреЗ рд╕рд╛рде 2 рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ (рдХреЗрд╡рд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪ):

DevToolsActivePort
CrashpadMetrics-active.pma

рдЬрдм рдореИрдВ рдирд╡реАрдирддрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реБрдЖ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдХреИрд╡рд┐рдПрдЯ: рдЬрдм рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╕реЗрдЯрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЙрд╕ рд╕рдордп, рдореИрдВ Puppeteer рдХреЛ рдПрдХ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореБрдЭреЗ рдПрдХ-рджреЛ рдмрд╛рд░ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЧрд▓рдд рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЗрд╕ рдЕрдкрдбреЗрдЯ рдХреЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ред рдореИрдВрдиреЗ yarn add puppeteer@latest рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред рдореИрдВ рдПрдХ index.js рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд░реАрдбрдореА рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдФрд░ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ред рддреЛ ... рд╢рд╛рдпрдж рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд╣рд╛, рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯрдЕрдк рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рд╣реИред

FWIW:

'use strict';

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  try { await browser.close(); } catch (err) { console.log(err); }
})();
{ Error: EPERM: operation not permitted,
  unlink 'c:\Windows\Temp\puppeteer_dev_profile-BzkIJu\CrashpadMetrics-active.pma'
    at Object.fs.unlinkSync (fs.js:1067:18)
    at fixWinEPERMSync (...\node_modules\rimraf\rimraf.js:210:13)
    at rimrafSync (...\node_modules\rimraf\rimraf.js:310:28)
    at ...\node_modules\rimraf\rimraf.js:341:5
    at Array.forEach (<anonymous>)
    at rmkidsSync (...\node_modules\rimraf\rimraf.js:340:26)
    at rmdirSync (...\node_modules\rimraf\rimraf.js:333:7)
    at fixWinEPERMSync (...\node_modules\rimraf\rimraf.js:208:5)
    at rimrafSync (...\node_modules\rimraf\rimraf.js:310:28)
    at killChromeAndCleanup (...\node_modules\puppeteer\lib\Launcher.js:103:7)
  errno: -4048,
  code: 'EPERM',
  syscall: 'unlink',
  path: 'c:\\Windows\\Temp\\puppeteer_dev_profile-BzkIJu\\CrashpadMetrics-active.pma' }

CrashpadMetrics-active.pma рдкрд░ рдореБрдЭреЗ рд╡рд╣реА рдЕрдирд▓рд┐рдВрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ 7 рдкреНрд░реЛ рдорд╢реАрди рдХрд▓ рд╕реЗ рдПрдирдУрдбреА 8.4.0 рдФрд░ рдХрдардкреБрддрд▓реА 0.9.0 рдХреА рддрд╛рдЬрд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рд╕рд╛рдеред

Https://github.com/GoogleChrome/puppeteer/commit/ac109dba6ddaa62a32fe920e864238d41b2f25251 рдХреЗ рдмрд╛рдж рдореЗрд░реЗ (рд╡рд┐рдВрдбреЛрдЬ 7 x64) рдХреЗ рд▓рд┐рдП рддрдп рд╣реЛрдиреЗ рд▓рдЧрддрд╛ рд╣реИ

рд╣рд╛рдВ, рдЕрдм рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдХрдардкреБрддрд▓реА рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░реЛрдорд┐рдпрдо рдЯрдкрдХрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рдмрдЬрд╛рдп рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛

рдореИрдВ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдардкреБрддрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ db рдореЗрдВ рдзрдХреЗрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдЕрдзрд┐рдХ рд╣реИ рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдореЗрдВ рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗрдВ @aslushnikov

+1

+1 рдХрдардкреБрддрд▓реА 5.2.1 рдкрд░, рдиреЛрдб v12.14.0, windows7 рдХреЗрд╡рд▓ рд╣реЗрдбрд▓реЗрд╕ рдЭреВрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдкреГрд╖реНрда рдЦреБрд▓реЗ рд╣реИрдВ, рддреЛ рдЙрди рд╕рднреА рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред
await page.close(); await browser.close();

рдореИрдВ рдкреЗрдЬ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ ubuntu рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЛ рдЧрдпрд╛

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ ... рдХрд┐рд╕реА рдХреЛ рднреА рдПрдХ рдирдЬрд╝рд░ рд▓реЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

+1 рд╣реЗрдбрд▓реЗрд╕ рд╕рдЪ / рдЧрд▓рдд, рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рд╛ред рд╡рд┐рдВрдбреЛрдЬ 10, рдиреЛрдб 13.10.0, рдХрдардкреБрддрд▓реА v5.2.1

рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдПрдХ рдмрд╛рд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓рд╛, рдпрд╣ рдЬреАрдд 10 рдкрд░ рдмреЗрддрд░рддреАрдм рд▓рдЧрддреА рд╣реИ, рдХрдардкреБрддрд▓реА 4.0.1, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ! рд╡рд┐рдВрдбреЛрдЬ 10, рдХрдардкреБрддрд▓реА v5.2.1ред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рдЬрдм рд╕рд┐рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛред

рд╡рд╣реА, рд╡рд┐рдВрдбреЛрдЬрд╝ 10 рдкрд░ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ

рдпрд╣рд╛рдВ рднреА рд╡реИрд╕рд╛ рд╣реА

рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ред
[рддреНрд░реБрдЯрд┐: EPERM: рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, 'C: \ Users \ xxxxxx \ AppData \ Local \ Temp \ 1 \ puppeteer_dev_chrome_profile-sj0wiy \ CrashpadMetrics-active.pma' рдХреЛ рдЕрдирд▓рд┐рдВрдХ рдХрд░реЗрдВ]
рдЧрд╝рд▓рддреА: -4048,
рдХреЛрдб: 'EPERM',
syscall: 'рдЕрдирд▓рд┐рдВрдХ',
рдкрде: 'C: \ Users \ xxxxxxx \ AppData \ Local \ Temp \ 1 \ puppeteer_dev_chrome_profile-sj0wiy \ CrashpadMetrics-active.pma'
}
рдХреНрдпрд╛ рдХреЛрдИ рджреЗрд╡ рдЯреАрдо рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ?

рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЦрдмрд░?

рд╣рдо рдЕрднреА рднреА 5.2.1 рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ

рдпрд╣ рджреЗрдЦрдХрд░ 5.3.1 рдХреЛ рднреА

рдореИрдВ рдЗрд╕реЗ 5.3.1 рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреГрдкрдпрд╛, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред рдлрд┐рд░ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдкреГрд╖реНрда рдЦреБрд▓реЗ рд╣реИрдВ, рддреЛ рдЙрди рд╕рднреА рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВред
await page.close(); await browser.close();

await browser.close() рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ @ ivangergo3 рдХреЗ рдЙрддреНрддрд░ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдиреЗ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛ рдХреЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ! ЁЯШД

let pages = await browser.pages()
await Promise.all(pages.map(page =>page.close()))
await browser.close()

12/17/2020 рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

  • рдиреАрдЪреЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдлрд┐рдХреНрд╕реНрдб рдХреЛрд╖реНрдардХ
let pages = await browser.pages()
await Promise.all(pages.map(page =>page.close())
await browser.close()

рдЪрд▓реЛ рдкреГрд╖реНрдареЛрдВ = browser.pages рдХрд╛ рдЗрдВрддрдЬрд╛рд░ ()
Promit.all (Pages.map (рдкреЗрдЬ => page.close ())) // рдПрдХ рдХреНрд▓реЛрдЬрд┐рдВрдЧ рдмреНрд░реИрдХреЗрдЯ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рдЧрд╛рдпрдм рд╣реИ
browser.close () рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВ

рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдХрд┐рд╕реА рдФрд░ рдХреЛ рднреА рд╡рд╣реА?

рдореИрдВ рдЧреБрдгрдХ рдЦреБрд▓реЗ рдФрд░ рдмрдВрдж рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣рдорддрд┐ рд╣реИ

рдореИрдВ рдРрд╕рд╛ рдХрд░рдХреЗ рдХреБрдЫ рд╣рдж рддрдХ рдПрдХ рдмрджрд╕реВрд░рдд рддрд░реАрдХреЗ рд╕реЗ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ browser.process().kill('SIGKILL'); рдХреЗ рдмрдЬрд╛рдп await browser.close(); рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рдХрднреА рдирд╣реАрдВ happendedред рдЗрд╕рдХреА рдХреЛрдИ рдХрдорд┐рдпрд╛рдВ?

рд╣рд╛рдБ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреА рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рд╣реИ
рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╕рдорд╛рдзрд╛рдиред рдХрдардкреБрддрд▓реА рджреЗрд╡ рдЯреАрдо рдХреЛ рдПрдХ рдлрд┐рдХреНрд╕ рдкреБрд╢ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдзрдиреНрдпрд╡рд╛рдж
рд╡реИрд╕реЗ рднреА рдиреЛрдЯрд┐рд╕ рдХреЗ рд▓рд┐рдП :-)

рд╢реБрдХреНрд░ рдкрд░, 18 рджрд┐рд╕рдВрдмрд░, 2020, 06:03 caihongxu рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рд╣рдж рддрдХ рдмрджрд╕реВрд░рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣рд╛ рдерд╛
ред Browser.process () рдХреЛ рдорд╛рд░рдиреЗ ( 'SIGKILL'); рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рдмрдЬрд╛рдп browser.close (); рддрдерд╛
рдореБрджреНрджрд╛ рдлрд┐рд░ рдХрднреА рдЦреБрд╢ рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕рдХреА рдХреЛрдИ рдХрдорд┐рдпрд╛рдВ?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/puppeteer/puppeteer/issues/298#issuecomment-7479494 ,
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ACLIE5B26YARSKBV22ZNKATSVLPBJANCNFSM4DXFG7VQ
ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕