Child pages
  • ERSelenium Framework

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

Screencast - 1 hour plus session on Test Driven Development with WebObjects presented by Denis Frolov on WOWODC 09. Shows how to use ERSelenium, jUnit, and Mockito with WebObjects.

Quick Start


  • Play around with test cases from ERSeleniumExample/Resources/Selenium/ using Selenium IDE.

Overview and Usage Notes

ERSelenium provides several features for effective use of SeleniumCore with WebObjects applications including:


SeleniumCore is the powerful javascript toolkit for web applications "black-box" testing. It emulates different kinds of user actions such as: clicking the hyperlink, editing text in the input field, choosing item from the list and so on. See also: Selenium

Adding the ERSelenium framework dependency to an Application

You can add a ERSelenium test runner framework dependency to your application with Eclipse/WOLips:

  1. Add the ERSelenium.framework to your project's Libraries dependency. See the tutorial: Add a Framework Dependency
  2. (Optionally. Disabled by default. Use with caution). Enable the Selenium tests direct action url in production mode via the property:
    Code Block
    Debug output of ERSelenium can be enabled in Properties by:
    Code Block = DEBUG


Code Block

Some tips for writing tests for ERSelenium

  • Don't use full URLs with open/openWindow commands (http://baseurl part will be added by ERSelenium):
    Code Block
  • You can use setup/teardown methods. They should be implemented as direct actions in the separate class, which should be er.selenium.SeleniumAction-descendant. SeleniumAction class has some handy helper methods and automatically turns your selenium-related actions off when selenium is disabled in Properties. Here's the example of using selenium-related direct actions in the test (suppose that resetSessionAction() is defined in the class "Selenium"):
    Code Block
  • You can use @repeat-@values-@done metacommands to execute specific part of the test with additional values edited in textboxes, e.g.:
    Code Block
        ...some actions...
        @values user1 user2 user3
        @values pass1 pass2 pass3
        ...some more actions...
    The commands between @repeat and @done will be repeated several times, each time with new value in "user" and "password" input field. The values are seperated by spaces and if you have multiple @values lines, they all must have the same number of parameters. The @values section applies to the value of the next command.


  • Selenium IDE Firefox plugin and XPath Checker can be very handy for creating and editing Selenium tests. Selenium IDE Selenese source plugin with proper comments support resides in ERSelenium/Resources/selenese-ide-plugin.js.

Using basic flow control

ERSelenium comes with a preinstalled flowControl user-contributed extension that provides some basic flow control. You can use its commands as described in the flowControl documentation.


Code Block
|while|!selenium.isTextPresent("Counter = 10");||

Standalone runner

ERSelenium offers tests' developers several nice features - like automatic test suite generation, metacommands and URL independence. Unfortunately this leads to some troubles when trying to execute your tests with Selenium-RC. This is where StandaloneRunner can be very helpful.