Skip to content

sterago/chef-selenium

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

308 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selenium Cookbook

Cookbook Version linux osx win

This cookbook installs and configures Selenium (http://www.seleniumhq.org/).

This cookbook comes with the following recipes:

  • default - Downloads and installs Selenium Standalone jar.
  • hub - Installs and configures a Selenium Hub as a service.
  • node - Installs and configures a Selenium Node as service on Linux and a GUI service on Mac OS X and Windows.

Resources selenium_hub and selenium_node are also available.

Usage

See selenium_grid cookbook that wraps selenium, browsers, drivers, and screenresolution cookbooks into one comprehensive cookbook.

Requirements

  • Java (not installed by this cookbook)
  • Chef 11.16+

Platforms

  • CentOS, RedHat
  • Mac OS X
  • Ubuntu
  • Windows

Cookbooks

  • windows
  • nssm - Required by Windows services only (e.g. Hub and HtmlUnit running in background)
  • macosx_autologin - Required by Mac OS X GUI services

Recipes

default

Downloads and installs Selenium Standalone jar.

Attributes

  • node['selenium']['url'] - The download URL of Selenium Standalone jar.
  • node['selenium']['windows']['home'] - Home directory. Default #{ENV['SYSTEMDRIVE']}/selenium.
  • node['selenium']['windows']['java'] - Path to Java executable. Default #{ENV['SYSTEMDRIVE']}\\java\\bin\\java.exe.
  • node['selenium']['unix']['home'] - Home directory. Default /opt/selenium.
  • node['selenium']['unix']['java'] - Path to Java executable. Default /usr/bin/java.

hub

Installs and configures a Selenium Hub as a service.

Attributes

  • node['selenium']['hub']['servicename'] - The name of the service. Default selenium_hub.
  • node['selenium']['hub']['host'] - Default null.
  • node['selenium']['hub']['port'] - Default 4444.
  • node['selenium']['hub']['jvm_args'] - Default nil.
  • node['selenium']['hub']['newSessionWaitTimeout'] - Default -1.
  • node['selenium']['hub']['servlets'] - Default [].
  • node['selenium']['hub']['prioritizer'] - Default null.
  • node['selenium']['hub']['capabilityMatcher'] - Default org.openqa.grid.internal.utils.DefaultCapabilityMatcher.
  • node['selenium']['hub']['throwOnCapabilityNotPresent'] - Default true.
  • node['selenium']['hub']['nodePolling'] - Default 5000.
  • node['selenium']['hub']['cleanUpCycle'] - Default 5000.
  • node['selenium']['hub']['timeout'] - Default 30_000.
  • node['selenium']['hub']['browserTimeout'] - Default 0.
  • node['selenium']['hub']['maxSession'] - Default 5.
  • node['selenium']['hub']['jettyMaxThreads'] - Default -1.

node

Installs and configures a Selenium Node as service on Linux and a GUI service on Mac OS X and Windows.

  • Firefox browser must be installed outside of this cookbook.
  • Linux nodes without a physical monitor require a headless display (e.g., xvfb, x11vnc, etc...) and must be installed and configured outside this cookbook.
  • Mac OS X/Windows nodes must run as a GUI service and that requires a username and password for automatic login. Note that Windows password is stored unencrypted under windows registry HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon and Mac OS X password is stored encrypted under /etc/kcpassword but it can be easily decrypted.

Attributes

  • node['selenium']['node']['servicename'] - The name of the service. Default selenium_node.
  • node['selenium']['node']['host'] - Default ip.
  • node['selenium']['node']['port'] - Default 5555.
  • node['selenium']['node']['jvm_args'] - Default nil.
  • node['selenium']['node']['proxy'] - Default org.openqa.grid.selenium.proxy.DefaultRemoteProxy.
  • node['selenium']['node']['maxSession'] - Default 5.
  • node['selenium']['node']['register'] - Default true.
  • node['selenium']['node']['registerCycle'] - Default 5000.
  • node['selenium']['node']['hubPort'] - Selenium-grid hub hostname. Default 4444.
  • node['selenium']['node']['hubHost'] - Selenium-grid hub port. Default ip.
  • node['selenium']['node']['capabilities'] - Based on capabilities. Default [].
  • node['selenium']['node']['additional_args'] - Default [].
  • node['selenium']['node']['display'] - Default :0.
  • Mac OS X/Windows only - Set both username and password to run as a GUI service:
    • username - Default nil.
    • password - Default nil. Note that Windows password is stored unencrypted under windows registry HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon and Mac OS X password is stored encrypted under /etc/kcpassword but it can be easily decrypted.
    • domain - Optional for Windows only. Default nil.

Example

Install Selenium Node with Firefox and HtmlUnit capabilities

node.override['selenium']['node']['username'] = 'vagrant' if platform?('windows', 'mac_os_x')
node.override['selenium']['node']['password'] = 'vagrant' if platform?('windows', 'mac_os_x')

node.override['selenium']['node']['capabilities'] = [
  {
    browserName: 'firefox',
    maxInstances: 5,
    seleniumProtocol: 'WebDriver'
  },
  {
    browserName: 'htmlunit',
    maxInstances: 1,
    platform: 'ANY',
    seleniumProtocol: 'WebDriver'
  }
]
  
include_recipe 'selenium::node'

Resources

selenium_hub

Installs and configures a Selenium Hub as a service.

Attributes

This is a partial list of attributes available. See hub resource for the complete listing of attributes.

  • name - Name attribute. The name of the service.
  • host - Hostname. Default null.
  • port - Port. Default 4444.

selenium_node

Installs and configures a Selenium Node as a service.

Attributes

This is a partial list of attributes available. See node resource for the complete listing of attributes.

  • name - Name attribute. The name of the service.
  • host - Hostname. Default null.
  • port - Port. Default 5555.
  • hubHost - Selenium-grid hub hostname. Default ip.
  • hubPort - Selenium-grid hub port. Default 4444.
  • capabilities - Based on capabilities. Default [].
  • Mac OS X/Windows only - Set both username and password to run as a GUI service:
    • username - Default nil.
    • password - Default nil. Note that Windows password is stored unencrypted under windows registry HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon and Mac OS X password is stored encrypted under /etc/kcpassword but it can be easily decrypted.
    • domain - Optional for Windows only. Default nil.

Example

Install Selenium Node with Firefox and HtmlUnit capabilities

selenium_node 'selenium_node' do
  username 'vagrant' if platform?('windows', 'mac_os_x')
  password 'vagrant' if platform?('windows', 'mac_os_x')
  capabilities [
    {
      browserName: 'firefox',
      maxInstances: 5,
      seleniumProtocol: 'WebDriver'
    },
    {
      browserName: 'htmlunit',
      maxInstances: 1,
      platform: 'ANY',
      seleniumProtocol: 'WebDriver'
    }
  ]
  action :install
end

ChefSpec Matchers

The Selenium cookbook includes custom ChefSpec matchers you can use to test your own cookbooks.

Example Matcher Usage

expect(chef_run).to install_selenium_hub('resource_name').with(
  port: '4444'
)

Selenium Cookbook Matchers

  • install_selenium_hub(resource_name)
  • install_selenium_node(resource_name)

Getting Help

Contributing

Please refer to CONTRIBUTING.

License

MIT - see the accompanying LICENSE file for details.

About

Chef cookbook to install and configure Selenium

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 88.7%
  • Shell 5.9%
  • HTML 5.4%