Adding XML support to Selenium Remote Control

If you are one of the chosen few using (or having to use) the Selenium suite of software test tools, then you may have discovered that it does not natively support XML content. Here is a useful way to modify it so that it does:

  1. Download the latest version in JAR format from your usual Maven repository (e.g. selenium-server-0.9.0.jar)
  2. Unpack this JAR somewhere on your system
  3. $ cd /tmp
    $ mkdir ss090 ; cd ss090
    $ jar xf ~/Desktop/selenium-server-0.9.0.jar

  4. Edit the file /tmp/ss090/core/scripts/selenium-browserbot.js and locate the getBody function (line 1573 approximately)
  5. Modify this function as follows:
  6. PageBot.prototype.bodyText = function() {
    if (this.getDocument() instanceof XMLDocument) {
    return new XMLSerializer().serializeToString(this.getDocument());
    } else {
    return getText(this.getDocument().body);
    }
    };

  7. Repack the JAR taking care to specify the correct MANIFEST file:
  8. $ cd /tmp/ss090
    $ jar cfm selenium-server-xml-0.9.0.jar META-INF/MANIFEST.MF *

  9. If you want to produce an MD5 signature for this JAR file, you can do so using the md5sum program.

Happy Trails …