Skip to content

Instantly share code, notes, and snippets.

@chrdek
Created March 1, 2021 18:20
Show Gist options
  • Save chrdek/b01b71d8022bad8a68d6342d0e5ce401 to your computer and use it in GitHub Desktop.
Save chrdek/b01b71d8022bad8a68d6342d0e5ce401 to your computer and use it in GitHub Desktop.
Automated tests runs for website (using Selenium PS)
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