2016-08-21 140 views
2

我想基于打开和关闭Web浏览器来启动和停止收音机,但由于某种原因,我无法使用不同的方法关闭浏览器。使用python关闭浏览器

我已经尝试过使用子过程的方法。

import subprocess as sp 
web = sp.Popen("epiphany http://www.google.com", shell=True) 

但这样做,我既不能关闭的进程与

web.kill() 

,也不符合

web.terminate() 

它根本没有什么之后。

我也尝试过使用硒方法,但由于我试图在树莓派上做到这一点,所以唯一的浏览器是不支持的顿悟,我无法获得不同的支持浏览器进行安装。

在Python web浏览器模块似乎没有任何关闭功能

有没有一种方法,我可以设法关闭浏览器?

+5

可能的复制[如何终止用shell = True启动的python子进程](http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true) – taras

+0

为什么不能你用硒吗? –

+0

@GeorgePetrov正如我所说,我在树莓派3上做这个,我不能得到一个浏览器来安装,所以我不得不使用epiphany(轻量级浏览器为pi),但它不支持硒,除非我得到了所有的概念这个错误 – mateuszdrwal

回答

0

做研究了很多后,我发现我可以通过键入

pkill epiphany 

到,所以我只是用这个代码以关闭它在python终端浏览器进程的:

import os 
os.system("pkill epiphany") 
0

看起来好像你想关闭刚打开的浏览器。假设你只有开放的顿悟例如,你可以使用

sp.Popen("killall epiphany") 

这会杀了顿悟的所有实例。 如果你有多个实例,你将需要获得想要杀死的正在运行的顿悟的id。

sp.Popen("epiphany http://www.google.com & export PID=$!", shell=True) 
# Do Stuff Here With Epiphany 
sp.Popen("kill -9 $PID") 

这应该为www.google.com打开一个新的epiphany实例,并将PID保存到您的环境变量中。然后,您可以使用$ PID获得PID的值并终止浏览器进程。

+0

由于某种原因不适合我。这两个方法提出了一个child_exception与“没有这样的文件或目录”的原因,我也注意到,如果我做'回声$ PID',而突然第二个方法运行时它不会返回任何东西,但我不知道它是否应该 – mateuszdrwal