2017-11-13 15 views
0

私はWebとSOFに関するいくつかの調査を行いましたが、そのエラーに本当に役立つものは何も見つかりませんでした。未解決の約束却下(却下id:1):エラー:kill ESRCH

Windows 10 Ubuntu BashでNodeと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

このようなPIDが実行されていない場合は、ESRCHが強制終了されます。 try-catch文を追加してエラーを記録し、行番号を取得します。それから、このエラーを生成するコマンドを掘り下げるか、質問を更新する必要があります。 – sventschui

+0

@paul私は人形師とWSLで同じ動作をします。 私は最近、カルマテストをヘッドレスで実行できると言われています。 – Levi

答えて

0

ポイント:

  1. 、Windowsのbashは、完全なドロップイン置換Ubuntuのbashの(まだ)のためではありません。異なるGUIベースのアプリケーションが適切に動作しなかった多くのケースがあります。また、スクリプトはWindows 10のbashと混同されるかもしれません。osはWindowsではなくLinuxだと思うかもしれません。

  2. Windows 10 bashはの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)はDebianの依存関係

をインストールします。これらの不良少年の https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

sudo apt-get installすべてを。

2)人形遣い

3を起動するとき'--no-sandbox'フラグを追加しますが)あなたの窓10が最新の状態であることを確認してください。 Chromeを起動するための重要なアップデートがありませんでした。

関連する問題