by adamdriscoll

adamdriscoll / selenium-powershell

PowerShell module to run a Selenium WebDriver.

256 Stars 63 Forks Last release: about 1 year ago (v2.0) MIT License 175 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Selenium PowerShell Module

The Selenium PowerShell module allows you to automate browser interaction using the Selenium API. You can navigate to pages, find elements, click buttons, enter text and even take screenshots.

Looking for Maintainers

I haven't been able to able to keep up with the issues on this repo. If you are interested in becoming a maintainer, please let me know. - Adam


  • Wraps the C# WebDriver for Selenium
  • Easily execute web-based tests
  • Works well with Pester

Build Status


Note: Firefox's Latest Gecko Driver on Windows requires Microsoft Visual Studio Redistributables for the binary to run get them
Install-Module Selenium


Import-Module "{FullPath}\selenium-powershell\Selenium.psd1"


Note: in order to use a specific driver you will need to have the brower of the driver installed on your system.
For example if you use Start-SeChrome you will need to have either a Chrome or Chromium browser installed

Start a Browser Driver

# Start a driver for a browser of your choise (Chrome/Firefox/Edge/InternetExplorer)
# To start a Firefox Driver
$Driver = Start-SeFirefox 

To start a Chrome Driver

$Driver = Start-SeChrome

To start an Edge Driver

$Driver = Start-SeEdge

Navigate to a URL

$Driver = Start-SeFirefox 
Enter-SeUrl -Driver $Driver

Find an Element

$Driver = Start-SeFirefox 
Enter-SeUrl -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "myControl"

Click on an Element/Button

$Driver = Start-SeFirefox 
Enter-SeUrl -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "btnSend"
Invoke-SeClick -Element $Element

Send Keystrokes

$Driver = Start-SeFirefox 
Enter-SeUrl -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "txtEmail"
Send-SeKeys -Element $Element -Keys "[email protected]"

Run Chrome with options

# Run Chrome in Headless mode 
$Driver = Start-SeChrome -Headless

Run Chrome in incognito mode

$Driver = Start-SeChrome -Incognito

Run Chrome with alternative download folder

$Driver = Start-SeChrome -DefaultDownloadPath C:\Temp

Run Chrome and go to a URL in one command

$Driver = Start-SeChrome -StartURL ''

Run Chrome with multiple Arguments

$Driver = Start-SeChrome -Arguments @('Incognito','start-maximized')

Run Chrome with an existing profile.

The default profile paths are as follows:

Windows: C:\Users<username>\AppData\Local\Google\Chrome\User Data

Linux: /home//.config/google-chrome

MacOS: /Users//Library/Application Support/Google/Chrome

$Driver = Start-SeChrome -ProfileDirectoryPath '/home//.config/google-chrome'

Find and Wait for an element

$Driver = Start-SeChrome
Enter-SeUrl '' -Driver $Driver

Please note that with the -Wait parameter only one element can be returned at a time.

Find-SeElement -Driver $d -Wait -Timeout 10 -Css input[name='q'] Find-SeElement -Driver $d -Wait -Timeout 10 -Name q


We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.