I am trying to use selenium from python to scrape some dynamics pages with javascript. However, I cannot call firefox after I followed the instruction of selenium on the pypi page(http://pypi.python.org/pypi/selenium). I installed firefox on AWS ubuntu 12.04. The error message I got is:
In [1]: from selenium import webdriver In [2]: br = webdriver.Firefox() --------------------------------------------------------------------------- WebDriverException Traceback (most recent call last) /home/ubuntu/<ipython-input-2-d6a5d754ea44> in <module>() ----> 1 br = webdriver.Firefox() /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.pyc in __init__(self, firefox_profile, firefox_binary, timeout) 49 RemoteWebDriver.__init__(self, 50 command_executor=ExtensionConnection("127.0.0.1", self.profile, ---> 51 self.binary, timeout), 52 desired_capabilities=DesiredCapabilities.FIREFOX) 53 /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.pyc in __init__(self, host, firefox_profile, firefox_binary, timeout) 45 self.profile.add_extension() 46 ---> 47 self.binary.launch_browser(self.profile) 48 _URL = "http://%s:%d/hub" % (HOST, PORT) 49 RemoteConnection.__init__( /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in launch_browser(self, profile) 42 43 self._start_from_profile_path(self.profile.path) ---> 44 self._wait_until_connectable() 45 46 def kill(self): /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.pyc in _wait_until_connectable(self) 79 raise WebDriverException("The browser appears to have exited " 80 "before we could connect. The output was: %s" % ---> 81 self._get_firefox_output()) 82 if count == 30: 83 self.kill() WebDriverException: Message: 'The browser appears to have exited before we could connect. The output was: Error: no display specified\n'
I did search on the web and found that this problem happened with other people (https://groups.google.com/forum/?fromgroups=#!topic/selenium-users/21sJrOJULZY). But I don't understand the solution, if it is.
Can anyone help me please? Thanks!
How to open/launch firefox in selenium python. Open Mozilla Firefox browser and type in the address bar Firefox://version/ to check browser version to download the compatible version firefox Web driver as per Browser version. unzip and copy geckodriver.exe to the python script directory location.
Selenium IDE by SeleniumIt is implemented as a Firefox extension, and allows you to record, edit, and debug tests.
You can use any Web Browser like Firefox or Chrome in a headless mode. To do so, first open up the Web Browser using the Web Driver and then set it to headless mode. In any case, the web driver needs to be installed.
The problem is Firefox requires a display. I've used pyvirtualdisplay in my example to simulate a display. The solution is:
from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(1024, 768)) display.start() driver= webdriver.Firefox() driver.get("http://www.somewebsite.com/") <---some code---> #driver.close() # Close the current window. driver.quit() # Quit the driver and close every associated window. display.stop()
Please note that pyvirtualdisplay requires one of the following back-ends: Xvfb, Xephyr, Xvnc.
This should resolve your issue.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With