Download the Selenium Remote Control JAR from seleniumhq.org and run:
$ java -jar /path/to/selenium-server.jar
This starts the server process that your tests will connect to to spawn and control the browser.
Choose the appropriate test layer (see Integration) and create a test case:
import gocept.selenium.wsgi from mypackage import App test_layer = gocept.selenium.wsgi.Layer(App()) class TestWSGITestCase(gocept.selenium.wsgi.TestCase): layer = test_layer def test_something(self): self.selenium.open('http://%s/foo.html' % self.selenium.server) self.selenium.assertBodyText('foo')
You can configure the selenium server that gocept.selenium connects to from the command line. Selenium RC defaults to localhost:4444, but you can also connect to a selenium grid in your organization by using the following environment variables:
If multiple browsers are connected to your selenium grid, you can choose the browser to run the tests with as such:
When you are running your selenium tests on a selenium grid, you need to instruct the browser which host and port to connect to:
The default for the port to bind is 0 which let the kernel choose a random, free port.
When you are testing an application on one machine, you can access the running application from another machine if you set GOCEPT_SELENIUM_APP_HOST = 0.0.0.0 instead of the default localhost.
You can set the speed with which the tests are run through an environment variable:
This example will introduce a 500 millisecond pause between tests.
For debugging purposes it’s helpful to have the Firebug debugger available in the Selenium-controlled browser. To do that, create a new Firefox profile and install Firebug into it. Then you can tell Selenium to use this profile for running Firefox:
$ java -jar /path/to/selenium-server.jar -firefoxProfileTemplate ~/.mozilla/firefox/<PROFILE_FOLDER>
Under Linux, the Selenium-controlled browser tends to steal the mouse focus, which makes it impossible to do anything else while a Selenium test is running. To prevent this, use Xephyr (successor of Xnest) to start an X server contained in a window, for example:
#!/bin/sh display=:1 Xephyr -host-cursor -dpi 100 -wr -screen 1400x900 $display & export DISPLAY=$display sleep 2 metacity & # or any other window manager x-terminal-emulator -e java -jar /path/to/selenium-server.jar