Search code examples
seleniumubuntuubuntu-serverheadless-browser

How do I run headless selenium on Ubuntu Server


I'm trying to run headless selenium and to get to grips with it I've set up a new droplet on Digital Ocean (Ubuntu 16).

I am following this tutorial but I'm getting the following error when I run the script.

Traceback (most recent call last):
  File "pyvirtualdisplaytest.py", line 12, in <module>
    browser = webdriver.Firefox()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
    self.service.start()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x7f981d0dc190>> ignored

What should I do? Thanks for your help.


Solution

  • Download the gecko driver from https://github.com/mozilla/geckodriver/releases/tag/v0.11.1

    export PATH=$PATH:/loaction of the downloaded geckodriver

    Run your Code.

    If you get the following Exception

    selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no bina ry flag set on the command line

    Kindly, check the geckodriver and firefox should be of either 32 or 64 bit

    Otherwise. Provide the FirefoxBinary path in the code to the FirefoxDriver() using FireFoxBinary Object.