2013-05-05 7 views
8

Używam Selenium i chrome webdriver, ale po uruchomieniu skryptów otwiera się okno. Czy jest jakiś sposób, aby mógł uzyskać dostęp do Internetu bez pojawienia się okna?Używanie Selenium w tle

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() 

Na przykład w tym miejscu idzie do klasy mojej szkole i umieszcza w nazwę użytkownika i hasło, ale chcę to zrobić bez przeglądarce pojawiały się, jeśli to możliwe.

+2

Jeśli zainstalujesz pyvirtualdisplay (wrapper dla Xvfb), możesz uruchomić Selenium na wyświetlaczu bezgłowym (wirtualnym). [Corey Goldberg pokazuje ładny przykład] (http://coreygoldberg.blogspot.com/2011/06/python-headless-selenium-webdriver.html), jak to zrobić. – unutbu

+0

To zadziała doskonale, dziękuję !! – Serial

+0

Nie mogę go uruchomić :( – Serial

Odpowiedz

16

Proponuję spróbować użyć bezgłowego PhantomJs GhostDriver (co jest stosunkowo nowe). Ponieważ jest to natywna metoda Selenium Webdriver.

Pobierz pliki wykonywalne PhantomJs z http://phantomjs.org/download.html.

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

Otrzymuję długi komunikat o błędzie, tutaj jest koniec: 'raise WebDriverException (" Nie można uruchomić phantomjs z ghostdriverem. ", E) WebDriverException: Message: 'Nie można uruchomić phantomjs z ghostdriver. '; Zrzut ekranu: dostępny na ekranie ' – Serial

+2

@ChristianCareaga Czy możesz powiedzieć, jak się zorientowałeś, jak sobie poradzić z tym błędem? Właśnie o to mi chodzi Teraz dziękuję – dg123

+0

Musiałem napisać pełny katalog do phantomjs , ale nie jestem pewien, czy napisałem to z powrotem i skończyłem robiąc coś innego – Serial