Created
March 1, 2021 18:20
-
-
Save chrdek/b01b71d8022bad8a68d6342d0e5ce401 to your computer and use it in GitHub Desktop.
Automated tests runs for website (using Selenium PS)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Import-Module "$($($env:PSModulePath -split ';')[2])\Selenium\3.0.1\Selenium.psd1" -Force | |
$Browser = Start-SeChrome -Arguments @("Incognito","start-maximized"); | |
Enter-SeUrl "http://intranet.test.site.net" -Driver $Browser | |
# Main login form. | |
$txtuname = Find-SeElement -Driver $Browser -By Name -Selection "username"; | |
Send-SeKeys -Element $txtuname -Keys "usename1pass1"; | |
$txtpassword = Find-SeElement -Driver $Browser -By Name -Selection "password"; | |
Send-SeKeys -Element $txtpassword -Keys "onetimepass1pass2"; | |
$txtlog = Find-SeElement -Driver $Browser -By Name -Selection "login"; | |
Send-SeClick -Element $txtlog -JavaScriptClick; | |
# Load 4 test case scenarios, randomize sequence of tests, random inner element test. | |
$mainTests = [ScriptBlock[]]@( | |
{ | |
# main application screens test. | |
$menuTopNewApplicat = Find-SeElement -Driver $Browser -By CssSelector -Selection "#New"; | |
Send-SeClick -Element $menuTopNewApplicat -JavaScriptClick; | |
$menuSubApplicat1E = Find-SeElement -Driver $Browser -By CssSelector -Selection "#Tile_Selection"; | |
Send-SeClick -Element $menuSubApplicatA -JavaScriptClick; | |
$menuSubEA1 = Find-SeElement -Driver $Browser -By CssSelector -Selection "#lihyplnk_12 > a"; | |
Send-SeClick -Element $menuSubA01 -JavaScriptClick; | |
Start-Sleep 10; | |
$Browser.ExecuteScript("window.scrollTo(0,2350)"); | |
}, | |
{ | |
# main application tests, with usage. | |
$menuTopNewApplicat = Find-SeElement -Driver $Browser -By CssSelector -Selection "#NewUsage"; | |
Send-SeClick -Element $menuTopNewApplicat -JavaScriptClick; | |
$menuSubApplicat1P = Find-SeElement -Driver $Browser -By CssSelector -Selection "#Tile_Selection3"; | |
Send-SeClick -Element $menuSubApplicatC -JavaScriptClick; | |
$menuSubP01 = Find-SeElement -Driver $Browser -By CssSelector -Selection "#usage_num884_1"; | |
Send-SeClick -Element $menuSubC01 -JavaScriptClick; | |
Start-Sleep 4; | |
$Browser.ExecuteScript("window.scrollTo(0,950)"); | |
Start-Sleep 2; | |
$txtDecreeDescript = Find-SeElement -Driver $Browser -By CssSelector -Selection "#edit\.deveDesc_1"; | |
$keysrnd=$(Get-Random -Minimum 10 -Maximum 9000); | |
Send-SeKeys -Element $txtDecreeDescript -Keys "Test Keys Number ${keysrnd}"; | |
Start-Sleep 1; | |
$chkBox = Find-SeElement -Driver $Browser -By CssSelector -Selection "#edit\.applicC01\.partEl_1"; | |
Send-SeClick -Element $chkBox -JavaScriptClick; | |
}, | |
{ | |
# main application list functionality. | |
$menuTopSysFunctions = Find-SeElement -Driver $Browser -By CssSelector -Selection "#MainMgmt"; | |
Send-SeClick -Element $menuTopSysFunctions -JavaScriptClick; | |
$applicatMenu = Find-SeElement -Driver $Browser -By CssSelector -Selection "#Applic"; | |
Send-SeClick -Element $applicatMenu -JavaScriptClick; | |
$applicatList = Find-SeElement -Driver $Browser -By CssSelector -Selection "#ApplicList"; | |
Start-Sleep 2; | |
Send-SeClick -Element $applicatList -JavaScriptClick; | |
}, | |
{ | |
# main list govhousin. | |
$menuGovSysFn = Find-SeElement -Driver $Browser -By CssSelector -Selection "#New"; | |
Send-SeClick -Element $menuGovSysFn -JavaScriptClick; | |
$govapplicMenu = Find-SeElement -Driver $Browser -By CssSelector -Selection "#Tile_Selection35u"; | |
Send-SeClick -Element $govapplicMenu -JavaScriptClick; | |
$GovHousingApplic = Find-SeElement -Driver $Browser -By CssSelector -Selection "#app_14"; | |
Send-SeClick -Element $GovHousingApplic -JavaScriptClick; | |
Start-Sleep 2; | |
$txtInfoInputs = Find-SeElement -Driver $Browser -By CssSelector -Selection input[name*='Info']; | |
# Randomizing test input per area(s), scrolls area for larger resolution(s). | |
$rndTxt = @("test 278","tested main item 3","Testing item 992010","test 319930","$(Get-Random -Minimum 0 -Maximum 9999)"); | |
$i=0; | |
$txtInfoInputs | %{ | |
$i=$i+500; | |
$Browser.ExecuteScript("window.scrollTo($i,$($i))"); | |
Send-SeKeys -Element $($_) -Keys "Information $($rndTxt[(Get-Random -Minimum 0 -Maximum 4)])"; | |
}; | |
$sendTemp = Find-SeElement -Driver $Browser -By CssSelector -Selection "#btnSubmits_1s"; | |
Send-SeClick -Element $sendTemp -JavaScriptClick; | |
Start-Sleep 3; | |
$ConfirmTempSave = Find-SeElement -Driver $Browser -By CssSelector -Selection "#btnY_1"; | |
Send-SeClick -Element $ConfirmTempSave -JavaScriptClick; | |
}, | |
{ | |
# Select a random list element for testing and preview. | |
$rndTest = $(Get-Random -Minimum 0 -Maximum 9); | |
Start-Sleep 20; | |
$previewRndTest = Find-SeElement -Driver $Browser -Id "btn-element"; | |
Send-SeClick -Element $($previewRndTest[$($rndTest)]) -JavaScriptClick; | |
$subSelTest = Find-SeElement -Driver $Browser -By CssSelector -Selection "#btnShow_$rndTest"; | |
Start-Sleep 3; | |
$Browser.ExecuteScript("window.scrollTo(0,1000)"); | |
Send-SeClick -Element $subSelTest -JavaScriptClick; | |
}); | |
Invoke-Command $mainTests[(Get-Random -Minimum 0 -Maximum 4)]; | |
# Default chrome driver startup, emulating site usage based on a pre-loaded scenario. | |
Start-Sleep 30; | |
taskkill /IM chromedriver.exe /F | |
Stop-Process -Name chrome; | |
"$($env:USERPROFILE)\Downloads\debug.log" 2> "$($env:USERPROFILE)\Downloads\debug.log"; rm "$($env:USERPROFILE)\Downloads\debug.log" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment