Selenium

Solano CI supports browser-based testing with all versions of Selenium. Most Selenium tests should work out of the box with no special configuration required.

Workers come installed with all recent versions of the FireFox browser, a recent version of Geckodriver, and recent Chrome and Chrome-devel releases. You can choose the default version of FireFox with a solano.yml setting.

Selenium Webdriver & Capybara

If you are using Selenium Webdriver with an older version of the Capybara ruby test framework, you may see errors if you configure with a browser other than FireFox. If you’re having this problem, and you can’t upgrade Capybara, you will need to configure your tests to use a “remote” Webdriver browser, with a specifically set Capybara.server_port:

# features/support/env.rb
Capybara.register_driver :tddium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :remote)
end

if ENV['TDDIUM']
  Capybara.javascript_driver = :tddium
  Capybara.server_port = 9400 + ENV.fetch('TDDIUM_TID', 0).to_i
else
  Capybara.javascript_driver = :selenium
end

Note that to then have the Selenium-controlled browser rendezvous with the app under test, you need to set Capybara.app_host:

Capybara.app_host = "http://#{account.subdomain}.lvh.me:#{Capybara.server_port}"

Selenium Server

Note

This is not a common use case.

If your test suite does not itself start a Selenium Webdriver instance, Solano CI can start Selenium servers that are compatible with Selenium 2 (Webdriver) and Selenium 1 (Selenium RC).

Note

By default, Solano CI assumes your test framework (e.g. Capybara in Ruby) will start its own selenium-webdriver instance(s). So, our system will not start standalone selenium servers in order to save system resources. If you need one, set the following in your config/solano.yml:

---
selenium: true

You may need to enable the standalone selenium server if, e.g. you’re using an older version of Capybara that can’t find Chrome as it’s installed in our worker. In that case. You’ll also need it if you’re using Selenium 1.

Selenium 1

See the instructions above to start a Selenium Server.

You will need to initialize your Selenium Client Driver to connect to ENV['SELENIUM\_RC\_HOST'], and it will automatically use the Solano CI’s hosted Selenium RC.