All Projects → dhoer → choco-selenium

dhoer / choco-selenium

Licence: Apache-2.0 License
Installs and configures selenium standalone, hub, or node server

Programming Languages

powershell
5483 projects
java
68154 projects - #9 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to choco-selenium

Selenoid
Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary.
Stars: ✭ 2,065 (+12806.25%)
Mutual labels:  grid, selenium, hub
bots-zoo
No description or website provided.
Stars: ✭ 59 (+268.75%)
Mutual labels:  selenium
tubular-dotnet
Tubular .NET Library
Stars: ✭ 16 (+0%)
Mutual labels:  grid
charles
Java web crawling library
Stars: ✭ 31 (+93.75%)
Mutual labels:  selenium
ministaller
Lightweight installer/updater for portable desktop applications
Stars: ✭ 15 (-6.25%)
Mutual labels:  standalone
teasy
Test easy with Teasy - UI automation testing framework
Stars: ✭ 27 (+68.75%)
Mutual labels:  selenium
proptypes
💂‍♂️ React's PropTypes, as a standalone module.
Stars: ✭ 60 (+275%)
Mutual labels:  standalone
ZZULI-healthreport
郑州轻工业大学疫情打卡
Stars: ✭ 95 (+493.75%)
Mutual labels:  selenium
ng-mazdik
Angular UI component library
Stars: ✭ 86 (+437.5%)
Mutual labels:  grid
as2-server
A standalone Java AS2 server - see as2-lib for the generic parts
Stars: ✭ 29 (+81.25%)
Mutual labels:  standalone
tropic
🍍 Test Runner Library
Stars: ✭ 29 (+81.25%)
Mutual labels:  selenium
esteem
eSteem Mobile - Application for Android and iOS users, start earning cryptocurrency!
Stars: ✭ 88 (+450%)
Mutual labels:  standalone
atata-kendoui
A set of Atata components for Kendo UI
Stars: ✭ 17 (+6.25%)
Mutual labels:  selenium
lostark-wait-notifier
🐤️ Lost Ark wait notifier
Stars: ✭ 38 (+137.5%)
Mutual labels:  selenium
Web-Spider-Login-Bilibili-Python3
网络爬虫模拟登陆bilibili 滑动验证码的破解 弹幕发送 2018-10-9
Stars: ✭ 38 (+137.5%)
Mutual labels:  selenium
dogfood
A tool for building self contained Lua executables
Stars: ✭ 26 (+62.5%)
Mutual labels:  standalone
Chocolatey
Chocolatey packages for JetBrains products.
Stars: ✭ 13 (-18.75%)
Mutual labels:  chocolatey
react-native-reseau
[WIP] An ios-like grid view based on react-native.
Stars: ✭ 13 (-18.75%)
Mutual labels:  grid
rjango
Django boilerplate with GraphQL, serving a Webpack compiled React Relay Modern frontend.
Stars: ✭ 73 (+356.25%)
Mutual labels:  selenium
babel-plugin-remove-test-ids
🐠 Babel plugin to strip `data-test-id` HTML attributes
Stars: ✭ 40 (+150%)
Mutual labels:  selenium

Selenium

Chocolatey AppVeyor branch

Installs and configures selenium standalone, hub, or node server from https://github.com/SeleniumHQ/selenium/.

A Vagrantfile to provision a Selenium-Grid on Windows 10 with latest browsers and drivers for Chrome, Edge, Firefox, and IE is available. See TESTING.md for more information.

DISCLAIMER: This package is not part of the official Selenium project.

Prerequisites

  • Java, Browser(s), and Browser WebDriver(s) must be installed prior to installing selenium
  • Non-Sucking Service Manager (NSSM) --pre version is required when using /service option

Quick Start

Standalone

Install standalone server using port 8888 instead of default 4444, and write to a log file instead of stdout:

choco install -y jdk10 firefox selenium-gecko-driver googlechrome selenium-chrome-driver selenium-ie-driver
choco install -y selenium --params "'/port:8888 /log'"

Start the standalone server: Start > Selenium > Selenium Standalone. Verify standalone server is available by opening Selenium Standalone console http://localhost:8888/wd/hub/static/resource/hub.html.

Hub

Install hub as a Windows service that will autostart on reboot:

choco install -y nssm --pre
choco install -y jdk10
choco install -y selenium --params "'/role:hub /service /autostart'"

Selenium hub server should be started automatically. Verify hub server is available by opening Selenium Grid Hub console http://localhost:4444/grid/console.

Node

Install node as startup script that will autostart on logon and support only chrome browser capabilities instead of the default capabilities:

$capabilitiesJson = "C:\tools\selenium\chromeonlycapabilities.json"
@'
[
  {
    "browserName": "chrome",
    "maxInstances": 5,
    "version": "autoversion",
    "seleniumProtocol": "WebDriver"
  }
]
'@ | New-Item $capabilitiesJson -Type file -Force

choco install -y jdk10 googlechrome selenium-chrome-driver
choco install -y selenium --params "'/role:node /hub:http://localhost:4444 /capabilitiesJson:$capabilitiesJson /autostart'"

Start the node server: Start > Selenium > Selenium Node. Verify node server is available by opening Selenium Grid Hub console http://localhost:4444/grid/console and seeing the node attached.

Note that for Firefox, Chrome, and Internet Explorer; when capability version is set to "autoversion", the installer will attempt to automatically determine and set the version.

AutoLogon

The autostart will start the non-Windows services when you logon. But to make that happen automatically, you need to install the autologon package and run autologon <username> <domain> <password> once to set it up:

choco install -y autologon
autologon $env:username $env:userdomain redacted

IE Driver

Internet Explorer will require additional configuration in order for the IE Driver to work. A PowerShell script ie-configuration.ps1 is available to configure IE. This script has been tested on Windows Server 2012R2, Windows Server 2016, and Windows 10.

Screen Resolution

If you need to set the screen resolution different from default, check out the screen-resolution package.

Usage

Windows service is available, but it is only recommended for the hub role. The non-Windows service requires a logon to allow selenium access to the GUI to drive the browser. See AutoLogon section for information on how to configure Windows to logon automatically.

The files installed or generated (selenium-server-standalone.jar, *capabilites.json, *config.json, *.cmd, and *.log) are typically located in the C:/tools/selenium directory.

A firewall rule is automatically created to allow traffic to the hub or node service port.

Package Parameters

The following package parameters can be set:

General

These parameters are available on all roles:

  • /role: - Options are hub, node, or standalone. Default: standalone.
  • /log - Log to <Get-ToolsLocation>\selenium\<role>.log instead of to STDOUT. Default false.
  • /javaoptions: - Additional options to pass to Java, e.g., -Dwebdriver.chrome.driver=./chromedriver.exe. Default: ''.
  • /debug - Enables LogLevel.FINE. Default: false.
  • /service - Add as a Windows service instead of as a startup script. Note that a Windows service can't drive a GUI, so it is only recommended for the hub role. Default: false.
  • /autostart - Set Windows services to start automatically on reboot or set startup scripts to start on logon. Default: false.

Standalone

  • /browserTimeout: - In seconds : number of seconds a browser session is allowed to hang while a WebDriver command is running (example: driver.get(url)). If the timeout is reached while a WebDriver command is still processing, the session will quit. Minimum value is 60. An unspecified, zero, or negative value means wait indefinitely. Default: 0.
  • /enablePassThrough - Default: true.
  • /port: - The port number the server will use. Default: 4444.
  • /timeout: - In seconds : Specifies the timeout before the server automatically kills a session that hasn't had any activity in the last X seconds. The test slot will then be released for another test to use. This is typically used to take care of client crashes. For grid hub/node roles, cleanUpCycle must also be set. Default: 1800.

Hub

  • /browserTimeout: - In seconds : number of seconds a browser session is allowed to hang while a WebDriver command is running (example: driver.get(url)). If the timeout is reached while a WebDriver command is still processing, the session will quit. Minimum value is 60. An unspecified, zero, or negative value means wait indefinitely. Default: 0.
  • /capabilityMatcher: - Default: org.openqa.grid.internal.utils.DefaultCapabilityMatcher.
  • /cleanUpCycle: - In ms : specifies how often the hub will poll running proxies for timed-out (i.e. hung) threads. Must also specify "timeout" option. Default: 5000.
  • /newSessionWaitTimeout: - Default: -1.
  • /port: - The port number the server will use. Default: 4444.
  • /servlets: - List of default (hub or node) servlets to enable. Advanced use cases only. Specify multiple servlets: tld.company.ServletA,tld.company.ServletB. The servlet must exist in the path: /grid/admin/ServletA /grid/admin/ServletB.
  • /throwOnCapabilityNotPresent - Default: true.
  • /timeout: - In seconds : Specifies the timeout before the server automatically kills a session that hasn't had any activity in the last X seconds. The test slot will then be released for another test to use. This is typically used to take care of client crashes. For grid hub/node roles, cleanUpCycle must also be set. Default: 1800.
  • /withoutServlets: - List of default (hub or node) servlets to disable. Advanced use cases only. Not all default servlets can be disabled. Specify multiple servlets: [tld.company.ServletA,tld.company.ServletB].

Node

  • /capabilitiesJson: - The JSON file containing capabilities. A capabilities.json is provided by default. For Chrome, Edge, Firefox, and Internet Explorer; when version is set to "autoversion", the installer will attempt to automatically determine and set the version. Default: '<Get-ToolsLocation>\selenium\capabilities.json'.
  • /hub: - The url that will be used to post the registration request. This option takes precedence over -hubHost and -hubPort options. Default: http://localhost:4444.
  • /downPollingLimit: - Node is marked as "down" if the node hasn't responded after the number of checks specified. Default: 2.
  • /maxSession: - Max number of tests that can run at the same time on the node, irrespective of the browser used. Default: 5.
  • /nodePolling: - In ms : specifies how often the hub will poll to see if the node is still responding. Default: 5000.
  • /nodeStatusCheckTimeout: - In ms : connection/socket timeout, used for node "nodePolling" check. Default: 5000.
  • /port: - The port number the server will use. Default: 5555.
  • /proxy: - The class used to represent the node proxy. Default: org.openqa.grid.selenium.proxy.DefaultRemoteProxy
  • /register - If specified, node will attempt to re-register itself automatically with its known grid hub if the hub becomes unavailable. Default: true.
  • /registerCycle: - In ms : specifies how often the node will try to register itself again. Allows administrator to restart the hub without restarting (or risk orphaning) registered nodes. Must be specified with the "-register" option. Default: 5000.
  • /servlets: - List of default (hub or node) servlets to enable. Advanced use cases only. Specify multiple servlets: [tld.company.ServletA,tld.company.ServletB]. The servlet must exist in the path: /grid/admin/ServletA /grid/admin/ServletB.
  • /timeout: - In seconds : Specifies the timeout before the server automatically kills a session that hasn't had any activity in the last X seconds. The test slot will then be released for another test to use. This is typically used to take care of client crashes. For grid hub/node roles, cleanUpCycle must also be set. Default: 1800.
  • /unregisterIfStillDownAfter - In ms : if the node remains down for more than unregisterIfStillDownAfter ms, it will stop attempting to re-register from the hub. Default: 60000.
  • /withoutServlets: - List of default (hub or node) servlets to disable. Advanced use cases only. Not all default servlets can be disabled. Specify multiple servlets: @(tld.company.ServletA,tld.company.ServletB).

These parameters can be passed to the installer with the use of --params. For example: --params "'/role:node /hub:http://localhost:4444'".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].