2016-08-21 91 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