= Implement Automatic Testing using Selenium and PowerShell in Azure DevOps Server - More TestPlans = **Summary**: How to Implement Automatic Testing using Selenium and PowerShell in Azure DevOps Server - pt 3. \\ **Date**: Around 2020 \\ **Refactor**: 29 April 2025: Checked links and formatting. Rebranded Team Foundation Server (TFS) to Azure Devops Server. \\ {{tag>azuredevops powershell selenium}} In this article I will use the Selenium webdriver for Chrome in PowerShell to implement automatic testing. For firefox or the original testplan, see [[tfspsselenium]] \\ Used technologies: * Selenium webdriver for Chrome * PowerShell > Note that I only list chrome here. Chrome works a bit cleaner and the code is exactly the same. = PowerShell Script - Send Keys = # Check for.net version of minimum 4.5: if (!(Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' | Get-ItemPropertyValue -Name Release | Foreach-Object { $_ -ge 394802 })){ exit }else{ write-host "mimimum .net 4.5 version found. Continue" } # Load the Selenium .Net library and paths to the various test libraries # webdriver & support dll Add-Type -Path "D:\selenium\WebDriver.dll" Add-Type -Path "D:\selenium\WebDriver.Support.dll" # Add path for chromedriver.exe and firefox geckodriver.exe $env:PATH += ";D:\selenium" # Testplan variables $testurl = "https://www.google.com" $testname = "google" $resultsdir = "D:\selenium\testresults" [OpenQA.Selenium.ScreenshotImageFormat]$ImageFormat = [OpenQA.Selenium.ScreenshotImageFormat]::Png ### Chrome testplan ######################################################################################################### # Start Chrome headless Write-Host "Start chrome testplan, starting chrome headless" $chromeOptions = New-Object OpenQA.Selenium.Chrome.ChromeOptions $chromeOptions.addArguments('headless') $chromeDriver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeOptions) # Start chrome testplan Write-Host "Go to url $testurl" $chromedriver.Navigate().GoToURL($testurl) Write-Host "Start Searching" $ChromeDriver.FindElementByName("q").SendKeys("Getshifting") $ChromeDriver.FindElementByName("btnK").Submit() # Get Evidence that the website works $chromecurrenturl = $chromeDriver.url $chromecurrenturltitle = $chromeDriver.title Write-Host "Current Chrome url $chromecurrenturl and title $chromecurrenturltitle" # Get Pagesource Write-Host "Create pagesource $chromecurrenturl" $chromeDriver.PageSource | Out-File "$resultsdir\chrome$testname.html" -Force # Get Screenshots Write-Host "Create screenshot $chromecurrenturl" $Screenshot = [OpenQA.Selenium.Support.Extensions.WebDriverExtensions]::TakeScreenshot($chromeDriver) $Screenshot.SaveAsFile("$resultsdir\chrome$testname.png", $ImageFormat) # Close Chrome Write-Host "Close and quit chrome browser and selenium webdriver. " $chromeDriver.Close() $chromeDriver.Quit()