2017-11-13 4 views
0

웹 및 SOF에 대한 조사를했지만 그 오류에 도움이되는 것이 없습니다.처리되지 않은 약속 거부 (거부 ID : 1) : 오류 : ESRCH 무시

Windows 및 Ubuntu Bash와 함께 Puppeteer를 설치했지만 제대로 작동하지 못했지만 다른 컴퓨터에서 Bash없이 Windows에서 작동하도록 관리했습니다.

내 명령은 다음과 같습니다 "ESRCH를 죽일 오류"

const puppeteer = require('puppeteer'); 

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

    await page.goto('https://github.com'); 
    await page.screenshot({ path: 'screenshots/github.png' }); 

    browser.close(); 
    } 

    run(); 

아무도 내가이 문제를 해결할 수있는 방법을 알고 있습니까 :

node index.js 

내하는 index.js는 페이지의 스크린 샷을 시도 오류?

+0

ESRCH는 해당 PID가 실행되고 있지 않을 때 kill에 의해 발생합니다. try-catch 문을 추가하여 오류를 기록하고 줄 번호를 가져옵니다. 그런 다음이 오류를 생성하는 명령을 파헤쳐 야합니다. (또는 질문을 업데이트하십시오.) – sventschui

+0

@paul WSL에서 puppeteer와 동일한 동작을 얻습니다. 요즘에는 카르마 테스트를 할 수 없다고합니다. – Levi

답변

0

포인트 더 고려하지 :

  1. 윈도우 강타가 아닌 완벽한 드롭 인 우분투 bash는 (아직) 교체. 다른 GUI 기반 응용 프로그램이 제대로 작동하지 않는 경우가 많습니다. 또한 스크립트는 Windows 10에서 bash로 혼란 스러울 수 있습니다. os는 Windows 대신 Linux라고 생각할 수 있습니다.

  2. 윈도우 10 배쉬는 64 비트 바이너리을 지원하므로 노드 내부에 사용되는 크롬 버전은 거의 64 비트 있는지 확인합니다. Puppeteer는 -child.pid을 사용하여 Windows 버전에서 child.pid 대신 하위 프로세스를 중지합니다. 꼭두각시가이 모든 bash/windows에 대해 혼란스러워하지 않는지 확인하십시오.

사례를 백업하십시오.

이 함수에서는 browser.close()을 사용하고 있지만 await browser.close()이어야합니다. 그렇지 않으면 올바른 순서로 실행되지 않습니다.

또한 앞에 await page.close();을 추가해야합니다.

그래서 코드가 있어야

await page.close(); 
await browser.close(); 
1

나는이 나를 위해 일한, 같은 문제가 있었다. 다음에 스크립트를 업데이트하십시오 :

const puppeteer = require('puppeteer'); 

async function run() { 
//const browser = await puppeteer.launch(); 
const browser = await puppeteer.launch({headless: true, args: ['--no-sandbox'] }); //WSL's chrome support is very new, and requires sandbox to be disabled in a lot of cases. 
const page = await browser.newPage(); 

await page.goto('https://github.com'); 
await page.screenshot({ path: 'screenshots/github.png' }); 

await browser.close(); //As @Md. Abu Taher suggested 
} 

run(); 
const browser = await puppeteer.launch({ args: ['--no-sandbox'] }); 

을이에 대한 모든 세부 사항을 읽고 싶다면,이 티켓을 가지고 (또는 그들에 대한 링크). 유사한 문제에 https://github.com/Microsoft/WSL/issues/648

다른 인형 사용자 : https://github.com/GoogleChrome/puppeteer/issues/290#issuecomment-322851507

0

난 그냥이 문제를 해결했습니다. 당신이해야 할 것은 다음 :이 문서에서 찾을 수 있습니다

1) 데비안 종속성

를 설치하는 나쁜 남자의 https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

sudo apt-get install 모두를.

3 인형

을 시작할 때

2) (10)가 최신 버전인지 확인 당신의 창을 확인) '--no-sandbox' 플래그를 추가합니다. Chrome을 시작할 수있는 중요한 업데이트가 누락되었습니다.

관련 문제