Skip to content

craigofnz/selenium-powershell

 
 

Repository files navigation

IT'S FORKED!

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

Selenium PowerShell Module

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

Build Status

Installation

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"

Usage

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 https://www.poshud.com -Driver $Driver

Find an Element

$Driver = Start-SeFirefox 
Enter-SeUrl https://www.poshud.com -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "myControl"

Click on an Element/Button

$Driver = Start-SeFirefox 
Enter-SeUrl https://www.poshud.com -Driver $Driver
$Element = Find-SeElement -Driver $Driver -Id "btnSend"
Invoke-SeClick -Element $Element

Send Keystrokes

$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 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 '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'

Find and Wait for an element

$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 

Maintainers

About

PowerShell module to run a Selenium WebDriver.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PowerShell 100.0%