2017-12-21 16 views
1

私はChrome Devtoolsプロトコルを使用するpythonスクリプトを作成しています(PythonラッパーPyChromeDevToolsヘッドレスChromeを使用していますが、Chromeのインスタンスを既に実行している必要があります。 。begginingで、ヘッドレスクロームインスタンスを起動し、そして最後に、それを閉じるためにPythonでヘッドレスChromeを開く/閉じる

を私が試してみましたこの:7912私はそのヘッドレスを参照してください。これは私がローカルホストに移動した場合(動作しているようです

import subprocess 
CHROME_PATH=r'C:\Program Files (x86)\Google\Chrome\Application\chrome' 

chrome_args=[CHROME_PATH, 
      '--headless', 
      '--disable-gpu', 
      '--remote-debugging-port=7912', 
      r'https://www.youtube.com/',] 

cmd=r" ".join(chrome_args) 

subprocess.call(cmd) 

Chromeが起動していて、https://www.youtube.comで開かれたタブと作業者のpidがあります(これはPytを終了すると消えます)ホンプロセス)。しかし、pythonスクリプトはただそこにハングアップし、スクリプトの残りの部分を実行し続けることはありません。

ヘッドレスChromeを起動してスクリプトを続行するにはどうすればよいですか。また、このプロセスを終了したらどうすればこのプロセスを終了できますか?

(同じスクリプトを実行しても、Chromeがヘッドレスであることを要求しない場合は、スクリプトは引き続き実行されます)。

答えて

2

p = subprocess.Popen(chrome_args)が必要です。 subprocess.callとは異なり、これは生成されたプロセスが終了するのを待たずに、バックグラウンドで実行します。ただし、スクリプトが終了してもChromeが強制終了される可能性があります。だから、Chromeがp.waitで終了するのを待つか、たとえばスクリプトをstallしてください。 input()

+0

華麗な感謝。これを数年にわたって把握しようとしていた。そのような単純な解決策があったと迷惑をかける。ありがとう:) – Tim

関連する問題