This is a fork of the module managed by Adam Driscoll that I am using to both test and use in anger new features for the module.
Please note: the stable 2.x branch is available from Powershell Gallery and is currently at version 2.3.1.
Install-Module -Repository PSGallery -Name Selenium -MaximumVersion 2.8.0 -Scope CurrentUser -Verbose
This repo instance is based on contributions going into a future 3.x Selenium module release but may include my own experiments and unusual use-cases that are not included in shared codebase.
It is my hope that 3.x will allow for interacting with Selenium in more Powershell natural way, as well as providing familiar function names for those that have previously used Selenium with different language bindings.
The committed 3.x code is in master
In general, both my changes and experiments are drafted from master and then merged forward into fork/3/selenium-powershell so that after successful use in anger they can also be merged into the more widely distributed master
Feature | fork/3/ | PR | master |
---|---|---|---|
Powershell Pipelining | Integrated | 2020-01-20 | 2020-01-22 |
GetAttributes | Integrated | ||
Select-SeWindow | Integrated | ||
PassThru Defaults | In Progress | ||
Select-SeFrame | Not Started | ||
WinAppDriver | In Progress | ||
SHiPS | Not Started |
Bugfix | fork/3/ | PR | master |
---|---|---|---|
Switch-SeFrame | Integrated | 2020-01-22 | 2020-01-23 |
- Wraps the C# WebDriver for Selenium
- Easily execute web-based tests
- Works well with Pester
Note: Firefox's Latest Gecko Driver on Windows requires Microsoft Visual Studio Redistributables for the binary to run get them
Here
Install-Module Selenium
OR
Import-Module "{FullPath}\selenium-powershell\Selenium.psm1"
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 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
$Driver = Start-SeFirefox
Enter-SeUrl https://www.poshud.com -Driver $Driver
$Driver = Start-SeFirefox
Enter-SeUrl https://www.poshud.com -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "myControl"
$Driver = Start-SeFirefox
Enter-SeUrl https://www.poshud.com -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "btnSend"
Invoke-SeClick -Element $Element
$Driver = Start-SeFirefox
Enter-SeUrl https://www.poshud.com -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "txtEmail"
Send-SeKeys -Element $Element -Keys "[email protected]"
# 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 'https://www.google.com/ncr'
# 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/<username>/.config/google-chrome
# MacOS: /Users/<username>/Library/Application Support/Google/Chrome
$Driver = Start-SeChrome -ProfileDirectoryPath '/home/<username>/.config/google-chrome'
$Driver = Start-SeChrome
Enter-SeUrl 'https://www.google.com/ncr' -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