cookbook 'selenium', '= 3.1.0'
selenium
(46) Versions
3.1.0
-
Follow14
Installs/Configures Selenium
cookbook 'selenium', '= 3.1.0', :supermarket
knife supermarket install selenium
knife supermarket download selenium
Selenium Cookbook
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.
LWRPs 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+ (sensitive attribute introduced)
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. Defaultselenium_hub
. -
node['selenium']['hub']['host']
- Defaultnull
. -
node['selenium']['hub']['port']
- Default4444
. -
node['selenium']['hub']['jvm_args']
- Defaultnil
. -
node['selenium']['hub']['newSessionWaitTimeout']
- Default-1
. -
node['selenium']['hub']['servlets']
- Default[]
. -
node['selenium']['hub']['prioritizer']
- Defaultnull
. -
node['selenium']['hub']['capabilityMatcher']
- Defaultorg.openqa.grid.internal.utils.DefaultCapabilityMatcher
. -
node['selenium']['hub']['throwOnCapabilityNotPresent']
- Defaulttrue
. -
node['selenium']['hub']['nodePolling']
- Default5000
. -
node['selenium']['hub']['cleanUpCycle']
- Default5000
. -
node['selenium']['hub']['timeout']
- Default30_000
. -
node['selenium']['hub']['browserTimeout']
- Default0
. -
node['selenium']['hub']['maxSession']
- Default5
. -
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 (with the exception of HtmlUnitDriver) 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 or Windows foreground startup script. Defaultselenium_node
. -
node['selenium']['node']['host']
- Defaultip
. -
node['selenium']['node']['port']
- Default5555
. -
node['selenium']['node']['jvm_args']
- Defaultnil
. -
node['selenium']['node']['proxy']
- Defaultorg.openqa.grid.selenium.proxy.DefaultRemoteProxy
. -
node['selenium']['node']['maxSession']
- Default5
. -
node['selenium']['node']['register']
- Defaulttrue
. -
node['selenium']['node']['registerCycle']
- Default5000
. -
node['selenium']['node']['hubPort']
- Selenium-grid hub hostname. Default4444
. -
node['selenium']['node']['hubHost']
- Selenium-grid hub port. Defaultip
. -
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 or leave nil to run service in
background (HtmlUnit only):
-
username
- Defaultnil
. -
password
- Defaultnil
. Note that Windows password is stored unencrypted under windows registryHKLM\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. Defaultnil
.
-
Example
Install Selenium Node with Firefox and HtmlUnit capabilities
node.set['selenium']['node']['username'] = 'vagrant' if platform?('windows', 'mac_os_x') node.set['selenium']['node']['password'] = 'vagrant' if platform?('windows', 'mac_os_x') node.set['selenium']['node']['capabilities'] = [ { browserName: 'firefox', maxInstances: 5, seleniumProtocol: 'WebDriver' }, { browserName: 'htmlunit', maxInstances: 1, platform: 'ANY', seleniumProtocol: 'WebDriver' } ] include_recipe 'selenium::node'
Resource/Providers
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. Defaultnull
. -
port
- Port. Default4444
.
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 or Windows foreground startup script. -
host
- Hostname. Defaultnull
. -
port
- Port. Default5555
. -
hubHost
- Selenium-grid hub hostname. Defaultip
. -
hubPort
- Selenium-grid hub port. Default4444
. -
capabilities
- Based on capabilities. Default[]
. - Mac OS X/Windows only - Set both username and password to run as a GUI service or leave nil to run service in
background (HtmlUnit only):
-
username
- Defaultnil
. -
password
- Defaultnil
. Note that Windows password is stored unencrypted under windows registryHKLM\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. Defaultnil
.
-
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
- Ask specific questions on Stack Overflow.
- Report bugs and discuss potential features in Github issues.
Contributing
Please refer to CONTRIBUTING.
License
MIT - see the accompanying LICENSE file for details.
Changelog
3.1.0 - 9/26/2015
- Fix FC052: Metadata uses the unimplemented "suggests" keyword
3.0.0 - 9/17/2015
- Merge server recipe into default recipe
- Replace server_version, release_url and override attributes with just url attribute
- Replace server_name attribute and provision name attribute with just servername attribute
- Move drivers to their own cookbooks
- Remove PhantomJS
2.8.1 - 8/24/2015
- Fix #20 Unable to set hub and node recipe attributes
2.8.0 - 8/21/2015
- Add hub and node recipes
2.7.0 - 8/21/2015
- Allow custom arguments to be added to node service
- Allow custom download url for selenium standalone jar
2.6.0 - 8/2/2015
- Support Safari
2.5.2 - 8/2/2015
- Fix #18 Selenium iedriver does not extract
2.5.1 - 7/31/2015
- Update Selenium and IE driver from 2.46.0 to 2.47.0
- Update ChromeDriver from 2.15 to 2.16
2.5.0 - 7/29/2015
- Deprecate PhantomJS
2.4.2 - 6/29/2015
- Add powershell_version check
2.4.1 - 6/29/2015
- Fix #16 Errror provisioning chromedriver on centos7
- Fix #15 Drivers not copied to /selenium/drivers/ folders on Windows 7
2.4.0 - 6/9/2015
- Allow resources to be globally configured
2.3.3 - 6/9/2015
- Fix #13 org.openqa.selenium.WebDriverException: chrome not reachable on CentOS 7.0/Ubuntu 14.04
2.3.2 - 6/4/2015
- Update Selenium and IE driver from 2.45.0 to 2.46.0
2.3.1 - 5/26/2015
- Add supports 'mac_os_x' to metadata
2.3.0 - 5/26/2015
- Add support for Mac OS X (Chef 11.14 or higher required)
2.2.6 - 5/26/2015
- Fix #11 chromedriver version does not update
- Update ChromeDriver from 2.14 to 2.15
2.2.5 - 5/1/2015
- Fix #10 'failed to allocate memory' exception on Windows 2008
2.2.4 - 4/12/2015
- Fix selenium_node provider depends on windows
- Set Windows display resolution in selenium_test cookbook
2.2.3 - 3/23/2015
- Wrap host and hubHost in quotes in node config
- Update IE driver from 2.44.0 to 2.45.0
2.2.2 - 2/26/2015
- Firefox 36 breaks WebDriver 2.44.0
2.2.1 - 2/18/2015
- Update ChromeDriver from 2.12 to 2.14
2.2.0 - 2/5/2015
- Make Windows service an option for HtmlUnit and PhantomJS
2.1.0 - 2/2/2015
- Support HtmlUnit
2.0.0 - 2/2/2015
- Replace PhantomJS attributes
1.0.0 - 2/1/2015
- Initial release
Foodcritic Metric
3.1.0 passed this metric
3.1.0 passed this metric