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?