Adding additional configuration args to selenium rc using cucumber and webrat

I use cucumber, webrat and selenium RC a lot day to day, all are great pieces of kit, which make my life so much easier, but I’m always trying to find ways to make these ever easier.
Selenium RC has alot of options which are settable when booting the selenium-server java application.
Many of these options are not available when using selenium with cucumber and webrat.

I have raised an issue for webrat and produced a patch that enables you to pass additional arguments during the setup of your webrat instance, these are then passed on to the Selenium RC startup command.

Until this is prioritised and added to the webrat core, I have an on-the-fly solution that enables the additional args, the following code should be added to your `env.rb`

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
module Webrat
  class Configuration
    attr_accessor :selenium_additional_args
  end
end

module AdditionalArgs  
  def self.included(base)
    base.alias_method_chain :start, :additional_args
  end
   
  def start_with_additional_args
    remote_control.additional_args = Webrat.configuration.selenium_additional_args
    start_without_additional_args
  end
end

Webrat.configure do |config|  
  ...  
  config.selenium_additional_args = ["-firefoxProfileTemplate '../../Library/Application Support/Firefox/Profiles/selenium'", "-singleWindow"]
  ...
end

Webrat::Selenium::SeleniumRCServer.send(:include, AdditionalArgs)

Leave a Reply