cookbook 'selenium', '= 2.2.0'
selenium
(46) Versions
2.2.0
-
Follow14
Installs/Configures Selenium
cookbook 'selenium', '= 2.2.0', :supermarket
knife supermarket install selenium
knife supermarket download selenium
Selenium Cookbook
This cookbook installs and configures Selenium and WebDriver components (http://www.seleniumhq.org/).
This cookbook comes with the following Resource/Providers:
- selenium_hub - Installs and configures selenium-grid hubs.
- selenium_node - Installs and configures selenium-grid nodes with support for ChromeDriver, FirefoxDriver, HtmlUnitDriver, and InternetExplorerDriver.
- selenium_phantomjs - Installs and configures PhantomJS as a selenium-grid node or as a standalone server via GhostDriver.
Roadmap
Add support for the following (any volunteers?):
- Mac OS X platform
- Appium
Requirements
Chef 11 or greater
Platforms
- CentOS, RedHat
- Ubuntu
- Windows
Cookbooks
These cookbooks are referenced with suggests, so be sure to depend on cookbooks that apply:
- windows
- nssm - Required for Windows hubs, and optional for Windows HtmlUnit and PhantomJS.
Usage
See selenium_test
cookbook for working cross platform examples. Note that the provided examples in this cookbook have passwords
unencrypted for simplicity.
selenium_hub
Installs and configures selenium-grid hubs.
Requirements
- Java must be installed outside of this cookbook.
Example
Install selenium-grid hub
selenium_hub 'selenium_hub' do action :install end
Attributes
See hub resource for a complete list
of attributes. See default attributes
for global cookbook settings.
-
name
- Name attribute. The name of the service. -
host
- Hostname. Defaults tonull
. -
port
- Port. Defaults to4444
. -
jvm_args
- Jvm arguments (e.g., -Xmx256M). Defaults tonil
.
selenium_node
Installs and configures selenium-grid nodes with support for
ChromeDriver,
FirefoxDriver,
HtmlUnitDriver, and
InternetExplorerDriver.
Requirements
- Java must be installed outside of this cookbook.
- Browsers (e.g., chrome, firefox, etc...) 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.
- Windows nodes (with the exception of HtmlUnitDriver) must run in the foreground and that requires a username
and password for auto-logon. Note that the password is stored unencrypted under windows registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
.
Example
Install selenium-grid node with Chrome, Firefox and Internet Explorer capability
selenium_node 'selenium_node' do username 'Administrator' if platform?('windows') password 'password' if platform?('windows') capabilities [ { browserName: 'chrome', maxInstances: 5, seleniumProtocol: 'WebDriver' }, { browserName: 'firefox', maxInstances: 5, seleniumProtocol: 'WebDriver' }, { browserName: 'htmlunit', maxInstances: 1, platform: 'ANY', seleniumProtocol: 'WebDriver' }, { browserName: 'internet explorer', maxInstances: 1, seleniumProtocol: 'WebDriver' } ] action :install end
Attributes
See node resource for a complete list
of attributes. See default attributes
for global cookbook settings.
-
name
- Name attribute. The name of the service or auto-logon script (Windows nodes only). -
host
- Hostname. Defaults tonull
. -
port
- Port. Defaults to4444
. -
hubHost
- Selenium-grid hub hostname. Defaults toip
. -
hubPort
- Selenium-grid hub port. Defaults to4444
. -
jvm_args
- Jvm arguments (e.g., -Xmx256M). Defaults tonil
. -
capabilities
- The following drivers are supported and installed based on capabilities:-
ChromeDriver -
Installed if capabilities contains browser name
chrome
- FirefoxDriver - Pre-installed with Selenium server
- HtmlUnitDriver - Pre-installed with Selenium server
-
InternetExplorerDriver - 32-bit or 64-bit
installed if capabilities contains browser name
internet explorer
-
ChromeDriver -
Installed if capabilities contains browser name
- Windows only - Set both username and password to run service in foreground or leave nil to run service in background:
-
username
- Windows account username. Defaults tonil
. -
password
- Windows account password. Defaults tonil
. Note that the password is stored unencrypted under windows registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
. -
domain
- Windows account domain. Optional. Defaults tonil
.
-
selenium_phantomjs
Installs and configures PhantomJS as a selenium-grid node or as a standalone server via
GhostDriver.
Requirements
- PhantomJS must be installed outside of this cookbook.
- Windows nodes have the option to run in the foreground and that requires a username and password for auto-logon.
Note that the password is stored unencrypted under windows registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
.
Examples
Install PhantomJS as a selenium-grid node
selenium_phantomjs 'selenium_phantomjs' do action :install end
Install PhantomJS as a standalone server by setting webdriverSeleniumGridHub to false
selenium_phantomjs 'selenium_phantomjs_nogrid' do webdriverSeleniumGridHub false action :install end
Attributes
See phantomjs resource for a complete list
of attributes. See default attributes
for global cookbook settings.
-
name
- Name attribute. The name of the service or auto-logon script (Windows nodes only). -
webdriver
- Webdriver ip:port. Defaults to"#{node['ipaddress']}:8910"
. -
webdriverSeleniumGridHub
- Webdriver selenium-grid hub url. Set tofalse
to install PhantomJS as a standalone service. Defaults to"http://#{node['ipaddress']}:4444"
. - Windows only - Set both username and password to run service in foreground or leave nil to run service in background:
-
username
- Windows account username. Defaults tonil
. -
password
- Windows account password. Defaults tonil
. Note that the password is stored unencrypted under windows registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
. -
domain
- Windows account domain. Optional. Defaults tonil
.
-
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)
- install_selenium_phantomjs(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.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
Changelog
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
2.2.0 passed this metric
2.2.0 passed this metric