打开/关闭无头Chrome与python

问题描述 投票:1回答:1

我正在编写一个使用Chrome Devtools协议的python脚本(我正在使用Python包装器PyChromeDevTools无头Chrome,但我需要有一个Chrome实例已经运行。我希望该脚本能够在启动时启动无头Chrome实例,并在最后关闭它。

我试过这个:

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)

这似乎有效(如果我导航到localhost:7912我看到无头Chrome已经启动,并且有一个用https://www.youtube.com打开的选项卡以及一个工作者pid(当我杀死python进程时它会消失)。但是python脚本只是挂在那里,它不会继续运行脚本的其余部分。

如何启动无头Chrome以便脚本继续运行。另外,我完成它后怎么能杀掉这个过程呢?

(如果我运行相同的脚本,但不要求Chrome无头,脚本会按预期继续)。

python python-3.x google-chrome google-chrome-devtools
1个回答
2
投票

你需要p = subprocess.Popen(chrome_args)。与subprocess.call不同,它不会等待生成的进程终止,而只是在后台运行它。但是,请注意,如果您的脚本完成,Chrome也可能会被杀死。因此,您可以等待Chrome以p.wait终止或停止使用例如input()

© www.soinside.com 2019 - 2024. All rights reserved.