Re: Using Webdriver with Firefox on a headless server

948 views
Skip to first unread message

Cerin

unread,
Nov 3, 2012, 2:20:08 PM11/3/12
to webd...@googlegroups.com
After hours of trial and error, I finally discovered there was a mismatch between my version of Firefox and the Selenium Webdriver for Python (I had 2.24 installed whereas I needed 2.26).

Running `pip install -U selenium` fixed the problem.

On Friday, November 2, 2012 11:03:57 PM UTC-4, Cerin wrote:
I've been using Selenium RC on a headless server for months without error using xvfb. However, I recently rewrote my script to use Webdriver, and while it works perfectly on a server with a normal X-server, it fails on a headless server even though my xvfb configuration is unchanged.

I start xvfb like:

    /usr/bin/Xvfb :99 -ac

And then I run webdriver like:

    import os
    import tempfile
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException

    os.environ['DISPLAY'] = ':99'

    download_dir = tempfile.mkdtemp()
    fp = webdriver.FirefoxProfile()
    fp.set_preference("browser.download.folderList", 2)
    fp.set_preference("browser.download.manager.showWhenStarting", False)
    fp.set_preference("browser.download.dir", download_dir)
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
    fp.set_preference("browser.cache.disk.enable", False)
    fp.set_preference("browser.cache.memory.enable", False)
    fp.set_preference("browser.cache.offline.enable", False)
    fp.set_preference("network.http.use-cache", False)
    driver = webdriver.Firefox(firefox_profile=fp)

Traceback (most recent call last):
  File "/usr/local/myapp/run_selenium.py", line 494, in process
    driver = webdriver.Firefox(firefox_profile=fp)
  File "/usr/local/myapp/local/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 51, in __init__
    self.binary, timeout),
  File "/usr/local/myapp/local/lib/python2.7/site-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
    self.binary.launch_browser(self.profile)
  File "/usr/local/myapp/local/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 44, in launch_browser
    self._wait_until_connectable()
  File "/usr/local/myapp/local/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 86, in _wait_until_connectable
    self.profile.path, self._get_firefox_output()))
WebDriverException: Message: 'Can\'t load the profile. Profile Dir: /tmp/tmpmFXvTi Firefox output: Xlib:  extension "RANDR" missing on display ":99".\n*** LOG addons.xpi: startup\n*** LOG addons.xpi: checkForChanges\n*** LOG addons.xpi: No changes found\n'

$ firefox --version
Mozilla Firefox 16.0.2
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

What am I doing wrong? How do I resolve this error?
Reply all
Reply to author
Forward
0 new messages