2017-10-18 21 views
1

最初のスクリプトから1つのChromiumインスタンスのみを起動し、他のスクリプトからこのインスタンスに接続したいとします。私は(puppeteer.connectについて知っている)が、問題は、私はクロムを起動することになっているスクリプト開始することです:Puppeteerを使ってクロムを開いたままにする方法は?

const puppeteer = require('puppeteer'); 
const fs = require('fs'); 
const logger = fs.createWriteStream('log.txt', { 
    flags: 'a' // 'a' means appending (old data will be preserved) 
}); 

(async() => { 
    const browser = await puppeteer.launch({ headless: false}); 
    logger.write('-----Browser is launched\n'); 
    logger.write(browser.wsEndpoint()); 
})(); 

を...と私はbrowser.close()を行うdidn`tのため、それは決して終わりません。したがって、私は他のスクリプトを実行することはできません。どのようにChromiumを起動し、そのエンドポイントを取得し、Chromiumが残っているスクリプトを終了させることができますか?

(適切な答えが含まれているdoesnの `t This one

+0

私の答えを試すことができます、親切に私の答えは、既存のクロムを接続することができます受け入れることができます。 –

+0

https://stackoverflow.com/a/46364111/274673( 'puppeteer.connect')があなたのために機能しないのはなぜですか? – ebidel

答えて

-1

基本的にあなたがtrueに切り離さセットでchild_processを起動することができ、質問

  • に答えます。次にprocess.exit()でメインスクリプトを終了してChromiumを起動します。1.jsを参照してください。

  • スクリプトそのWebソケットが保存されている場合は、あなたが見るpuppeteer.launchを経由して接続することができクロムを起動し、WebソケットはchromiumLauncher.js

  • を見る保存する責任2.js

Here私はそれをgithub(ダーティーコード)に押します。

関連する問題