2013-05-05 4 views
8

Ich benutze Selenium und Chrome Webdriver, aber wenn ich Skripte starte, öffnet sich ein Fenster. Gibt es eine Möglichkeit, auf das Internet zuzugreifen, ohne dass das Fenster auftaucht?Selen im Hintergrund verwenden

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Chrome() 

driver.get("https://ps.rsd.edu/public/") 
elem = driver.find_element_by_name("account") 
elem.send_keys("Username") 
elem2 = driver.find_element_by_name("pw") 
elem2.send_keys("Password") 
elem.send_keys(Keys.RETURN) 

driver.quit() 

Zum Beispiel geht dies zu meiner Schule Klasse Website und setzt in einem Benutzername und Passwort, aber ich will diese bis knallen, ohne den Browser tun, wenn das möglich ist.

+2

Wenn Sie pyvirtualdisplay (einen Wrapper für Xvfb) installieren, können Sie Selenium in einer kopflosen (virtuellen) Anzeige ausführen. [Corey Goldberg zeigt ein schönes Beispiel] (http://coreygoldberg.blogspot.com/2011/06/python-headless-selenium-webdriver.html), wie man das macht. – unutbu

+0

Das wird perfekt funktionieren danke !!!! – Serial

+0

ich kann es nicht zur Arbeit bringen :( – Serial

Antwort

16

Ich würde vorschlagen, versuchen Sie kopflose PhantomJs GhostDriver (was eine relativ neue Sache ist). Da dies die ursprüngliche Selenium-Webdriver-Methode ist.

Laden Sie PhantomJs ausführbare Dateien von http://phantomjs.org/download.html herunter.

driver = webdriver.PhantomJS("./phantomjs") # path to phantomjs binary 
driver.get("https://ps.rsd.edu/public/") 

elem = driver.find_element_by_name("account") 
elem.send_keys("Username") 
elem2 = driver.find_element_by_name("pw") 
elem2.send_keys("Password") 
elem.send_keys(Keys.RETURN) 

driver.quit() 
+1

Ich bekomme eine lange Fehlermeldung hier ist das Ende: 'raise WebDriverException (" Phantomjs mit Ghostdriver kann nicht gestartet werden. ", E) WebDriverException: Nachricht: 'Kann Phantomjs nicht mit starten Ghostdriver. '; Screenshot: verfügbar über den Bildschirm ' – Serial

+2

@ChristianCareaga Können Sie bitte sagen, wie Sie herausgefunden haben, wie Sie mit diesem Fehler umgehen können? That's, was für mich jetzt kommt. Danke. – dg123

+0

Ich musste das vollständige Verzeichnis Phantomjs ich denke , aber ich bin nicht sicher, dass ich das eine Weile zurück geschrieben habe und etwas anderes gemacht habe – Serial