Using Selenium in the background
Asked Answered
L

1

9

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.

Lepidopterous answered 5/5, 2013 at 22:54 Comment(3)
If you install pyvirtualdisplay (a wrapper for Xvfb), then you can run Selenium in a headless (virtual) display. Corey Goldberg shows a nice example of how to do this.Loveliesbleeding
That will work perfectly thank you!!!!Lepidopterous
i cant get it to work :(Lepidopterous
S
16

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()
Specs answered 5/5, 2013 at 23:18 Comment(6)
Im getting a long error message here is the end of it: raise WebDriverException("Unable to start phantomjs with ghostdriver.", e) WebDriverException: Message: 'Unable to start phantomjs with ghostdriver.' ; Screenshot: available via screen Lepidopterous
@ChristianCareaga Can you please say how you figured out how to deal with that error? That's what's coming up for me now. Thanks.Kalli
i had to write the full directory to phantomjs i think , but im not sure i wrote this awhile back and ended up doing something elseLepidopterous
I'm also getting "Unable to start phantomjs with ghostdriver." The dev mentioned in a comment hasn't updated the python 2.7 selenium bindings. They're broken or something.Ulcerate
I was getting the same error, but manually implementing the fix found here did the trick. It will be included in 2.40 when that comes out.Reprove
I was having some issues, even with selenium 2.40. Once I passed in the full path to the phantomjs.exe, everything worked fine.Telfore

© 2022 - 2024 — McMap. All rights reserved.