2017-08-14 6 views
2

Nachdem ich den folgenden Code Python fertig ausgeführt wird:richtig den Selen-Browser in Python beenden

from selenium.webdriver import Firefox 
from contextlib import closing 

with closing(Firefox()) as browser: 
    # some code here 

Es gibt immer noch zu hören geckodriver Prozesse in meiner Linux Maschine.

$ ss -arp 
LISTEN  0  128             localhost:44132               *:*  users:(("geckodriver",21698,3)) 
LISTEN  0  128             localhost:57893               *:*  users:(("geckodriver",20242,3)) 
LISTEN  0  128             localhost:34439               *:*  users:(("geckodriver",19440,3)) 
LISTEN  0  128             localhost:35435               

Wie die Python Code anzupassen, so dass sie auch die Prozesse enden wird?

Antwort

1

Das ist, weil Selen close Methode schließt das aktuelle Fenster/Browser, aber nicht beenden. Sie müssen quit Methode verwenden. So sollte Ihr Code

from selenium.webdriver import Firefox 
from contextlib import contextmanager 

@contextmanager 
def quiting(thing): 
    try: 
     yield thing 
    finally: 
     thing.quit() 

with quiting(Firefox()) as browser: 
    browser.get("http://sample.com") 
sein