pythonseleniumselenium-webdriverphantomjsghostdriver

Using Selenium in the background


I'm using Selenium and chrome webdriver but when I run scripts it opens a window. Is there any way that it can access the internet without the window popping up?

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

For example, this goes to my school's grade site and puts in a username and password but I want to do this without the browser popping up if that's possible.


Solution

  • I would suggest try using headless PhantomJs GhostDriver (which is a relatively new thing). As this is the native Selenium Webdriver way of doing it.

    Download PhantomJs executables from 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()