Skip to content

Instantly share code, notes, and snippets.

@bbhenry
Last active August 29, 2015 14:23
Show Gist options
  • Save bbhenry/122275189b00630aa468 to your computer and use it in GitHub Desktop.
Save bbhenry/122275189b00630aa468 to your computer and use it in GitHub Desktop.
Selenium Grid Extra Node Boxstarter Script
Disable-UAC
if (Test-PendingReboot) { Invoke-Reboot }
Update-ExecutionPolicy Unrestricted
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions -EnableShowFullPathInTitleBar
Enable-RemoteDesktop
Disable-InternetExplorerESC
$seleniumGridPath = "c:\SeleniumGrid"
$seleniumGridExtraDownloadUrl = "https://github.com/groupon/Selenium-Grid-Extras/releases/download/1.10.0/SeleniumGridExtras-1.10.0-SNAPSHOT-jar-with-dependencies.jar"
# install dependencies and browsers
choco install javaruntime
choco install Firefox
choco install GoogleChrome
# Creating Dir
New-Item -Force -ItemType directory -Path $seleniumGridPath
# Downloading Selenium Grid Extra
Invoke-WebRequest $seleniumGridExtraDownloadUrl -OutFile $seleniumGridPath\selenium-grid-extras.jar
# Create grid extras config
$Base64EncodedGridExtrasConfig = "ewogICJ0aGVDb25maWdNYXAiOiB7CiAgICAiYXV0b19zdGFydF9odWIiOiAiMCIsCiAgICAicmVib290X2FmdGVyX3Nlc3Npb25zIjogIjEwIiwKICAgICJkZWZhdWx0X3JvbGUiOiAibm9kZSIsCiAgICAidmlkZW9fcmVjb3JkaW5nX29wdGlvbnMiOiB7CiAgICAgICJ2aWRlb3NfdG9fa2VlcCI6ICI0MCIKICAgIH0sCiAgICAibm9kZV9jb25maWdfZmlsZXMiOiBbCiAgICAgICJub2RlXzU1NTUuanNvbiIKICAgIF0sCiAgICAiaHViX2NvbmZpZyI6IHt9LAogICAgImh1Yl9jb25maWdfZmlsZXMiOiBbXSwKICAgICJpZWRyaXZlciI6IHsKICAgICAgInZlcnNpb24iOiAiMi40NC4wIgogICAgfSwKICAgICJhdXRvX3N0YXJ0X25vZGUiOiAiMSIsCiAgICAiYXV0b191cGRhdGVfZHJpdmVycyI6ICIxIiwKICAgICJjaHJvbWVkcml2ZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMTMiCiAgICB9LAogICAgIndlYmRyaXZlciI6IHsKICAgICAgInZlcnNpb24iOiAiMi40NC4wIgogICAgfQogIH0KfQ=="
$DecodedGridExtrasConfig = [System.Convert]::FromBase64String($Base64EncodedGridExtrasConfig)
Set-Content -Path $seleniumGridPath\selenium_grid_extras_config.json -Value $DecodedGridExtrasConfig -Encoding Byte
# create node config
$Base64EncodedNodeConfig = "ewogICJjYXBhYmlsaXRpZXMiOiBbCiAgICB7CiAgICAgICJwbGF0Zm9ybSI6ICJWSVNUQSIsCiAgICAgICJzZWxlbml1bVByb3RvY29sIjogIldlYkRyaXZlciIsCiAgICAgICJicm93c2VyTmFtZSI6ICJjaHJvbWUiLAogICAgICAibWF4SW5zdGFuY2VzIjogMwogICAgfSwKICAgIHsKICAgICAgInBsYXRmb3JtIjogIlZJU1RBIiwKICAgICAgInNlbGVuaXVtUHJvdG9jb2wiOiAiV2ViRHJpdmVyIiwKICAgICAgImJyb3dzZXJOYW1lIjogImludGVybmV0IGV4cGxvcmVyIiwKICAgICAgIm1heEluc3RhbmNlcyI6IDEKICAgIH0sCiAgICB7CiAgICAgICJwbGF0Zm9ybSI6ICJWSVNUQSIsCiAgICAgICJzZWxlbml1bVByb3RvY29sIjogIldlYkRyaXZlciIsCiAgICAgICJicm93c2VyTmFtZSI6ICJmaXJlZm94IiwKICAgICAgIm1heEluc3RhbmNlcyI6IDMKICAgIH0KICBdLAogICJjb25maWd1cmF0aW9uIjogewogICAgInByb3h5IjogImNvbS5ncm91cG9uLnNlbGVuaXVtZ3JpZGV4dHJhcy5ncmlkLnByb3hpZXMuU2V0dXBUZWFyZG93blByb3h5IiwKICAgICJtYXhTZXNzaW9uIjogMywKICAgICJwb3J0IjogNTU1NSwKICAgICJyZWdpc3RlciI6IHRydWUsCiAgICAidW5yZWdpc3RlcklmU3RpbGxEb3duQWZ0ZXIiOiAxMDAwMCwKICAgICJodWJQb3J0IjogNDQ0NCwKICAgICJodWJIb3N0IjogInNlbGVuaXVtaHViIiwKICAgICJub2RlU3RhdHVzQ2hlY2tUaW1lb3V0IjogMTAwMDAsCiAgICAiZG93blBvbGxpbmdMaW1pdCI6IDAKICB9Cn0="
$DecodedNodeConfig = [System.Convert]::FromBase64String($Base64EncodedNodeConfig)
Set-Content -Path $seleniumGridPath\node_5555.json -Value $DecodedNodeConfig -Encoding Byte
# Downloading Selenium Grid Extra
Invoke-WebRequest $seleniumGridExtraDownloadUrl -OutFile $seleniumGridPath\selenium-grid-extras.jar
# Set Selenium Grid Extra to run on boot
Set-Content -Path $seleniumGridPath\startnode.bat -Value "cd $seleniumGridPath&java -jar selenium-grid-extras.jar"
schtasks.exe /Create /SC ONLOGON /TN "StartSeleniumNode" /TR "cmd /c ""C:\SeleniumGrid\startnode.bat"""
cd $seleniumGridPath
java -jar selenium-grid-extras.jar
if (Test-PendingReboot) { Invoke-Reboot }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment