Skip to content

Releases: adamdriscoll/selenium-powershell

V4.0.0-preview3

07 Mar 14:57
Compare
Choose a tag to compare
V4.0.0-preview3 Pre-release
Pre-release

Added / Modified

  • Get-SeElementAttribute now return a hashtable instead of a pscustom object when multiple attributes are queried

Fixes

  • Get-SeElement now make use of Get-SeElementAttribute internally to query attributes.
  • Get-SeElement error when using filter / attribute
  • Update-SeDriver default path typo (#206)
  • New-SeScreenshot documentation update (#200)
  • Casing issue with Types.ps1xml filename (#203)

V4.0.0-preview2

06 Dec 11:53
4d771ce
Compare
Choose a tag to compare
V4.0.0-preview2 Pre-release
Pre-release

4.0.0-preview2 (Prerelease)

Added / Modified

  • Get-SeElement -Filter; Add a new parameter to do additional filtering before returning. This is equivalent to doing a Where afterward but with the Get-SeElement error management logic applied before returning. (#192)
  • AcceptInsecureCertificates switch added to Start-SeDriver / New-SeDriverOptions (Supported by: Chrome, Firefox, Edge) (#189)
  • Chrome web drivers assemblies updated to latest version

Fixes

  • Starting Edge browser broken (#188,#195)
  • custom driver options, when specified, are not used (#191,#193)
  • Processes management internal logic error (#190)
  • Get-SeInput not working properly with -Single switch (#186)
  • Screenshots fail when attempting to screenshot the page (#187)

V4.0.0-preview1

25 Oct 16:09
c7c1bef
Compare
Choose a tag to compare
V4.0.0-preview1 Pre-release
Pre-release

Selenium-powershell V4 take the concept of previous iterations and pushes it further. A number of significant changes have been made, whic mean you cannot simply upgrade from V3 and expect your tests to work.

Notably, most of the aliases were removed from the module, making the syntax more uniform from now on.
That does mean that picking up a script from another source should not longer be a mystery due to the many aliases (and thus ways) to write the same exact thing.

Some of the functions had duplicates that performed essentially the same thing under a different name (ex: Invoke-SeKeys and Send-SeKeys). Functions that were too similar were removed.

Another big change is the removal of all the Start-SeXX cmdlet in favor of 1 entry point called Start-SeDriver. This will make it easier to ensure the behavior between browser is consistent and that each browser provide the same set of capabilities. Starting a driver will also mark the driver as active, meaning that any command from now on will automatically use that driver to perform the action. The $Driver parameter have been removed altogether and you will now need to use the Switch-SeDriver to switch between active drivers.

Here's a summary of the changes for V4

Added

  • Convert-toSeSelenium to convert IDE projects to Selenium-Powershell script
  • Update-SeDriver to download the latest driver (Support only Chrome currently)
  • Support for UserAgent in Start-SeDriver (#91)
  • New view for IwebDriver (#111). IWebDriver will now display as a table in the console by default instead of a list.
  • Get-SeElement - New view. Elements will now be returned in a table view to show the essential only. This make it significantly easier to deal with elements in the console interactively (#115)
  • Get-SeElement - Bychained support. The cmdlet will now drilldown when multiple by / value are provided to allow for instance the selection of links in a div containing a specific classname. This is an alternative for those less savy with Xpath (#116)
  • Get-SeHtml - Allow the retrieval of the html of an element (or driver is no element is provided). Essentially a wrapper around $Element.GetAttribute('xxHTML') (xx: Inner /Outer) (#118)
  • New-SeDriverService - Allow the creation of a driver service to be used later on with Start-SeDriver. Only useful if you need to do change to the service parameters native object before starting the driver (#119)
  • Invoke-SeMouseAction - Support for interactions (#122)
  • Wait-SeDriver / Wait-SeElement expliciti wait support (#125)
  • Get-SeElement -Attributes. Allow getting specific attributes (or all using *) to the elements to be returned. Attributes will be available in an Attributes string dictionary attached to each elements. (#133)
  • Position / Size parameter for Start-SeDriver. Allow starting the driver at a specified position and size. If no command line available (or not implemented), the driver will start with the default settings and the be moved. (#134)
  • Get-SeElement -Single switch added. Define the expectaction that only one element should be returned (#144)
  • Get/Set-SeDriverTimeout - Allow changing driver timeouts easily (#150)
  • Invoke-SeJavascript - A wrapper around $Driver.ExecuteScript (#151)
  • Get-SeFrame, wrapper around Get-SeElement to show iframe along with their name / id in a convenient view (#159)
  • New-SeWindow / Remove-SeWindow cmdlet added to complement the existing Get/Switch (#170)
  • Get-SeInput (#178) - A wrapper around Get-SeElement to get input element.

Changed

  • AsDefaultDriver implementation changed. Instead, Start-SeDriver automatically make the started driver the default. (#93)

  • Driver parameter was removed on most cmdleet. It is now expected to use the Switch-SeDriver cmdlet to change the active driver if multiple are open.

  • Start-SeChrome and other have been removed in favor of Start-SeDriver -Browser Chrome (#100)

  • #98 Removed duplicate functions that performed the same thing or overlapped significantly

  • Removed all the aliases everywhere on all the parameter / functions in favor of a more rigid way of writing things (#99)

  • Standardize parameters. Some parameters had different names to mean the same thing (#100)

  • Revamp Get-SeSelectionOption. The cmdlet have been separated in 3 cmdlet Get/Clear/Set -SeSelectValue. The get cmdlet will also now return the Text & Value of the selected element instead of the text only. (#112)

  • Set-SeUrl now have a -Depth parameter to navigate forward or back x times (#124)

  • Get-SeElement now returns visible elements by default. To view hidden elements, the All switch parameter need to be used (#126)

  • Start-SeDriver -Quiet parameter removal. Quiet is now the default. This remove the extra Selenium verbose and resolves an issue with Driver not being usable in jobs. (#127)

  • Get-SeElement now write an error if no element are returned. (#135)

  • cmdlet that expect urls will now accept urls without protocol defined. Assumptions in these cases is that the url is https thus google.ca will be treated as https://www.google.ca (#153)

  • Get-SeElementAttribute - Accept multiple values and wildcard to load all attributes (#161)

  • Get-SeElement - support for multiple classname (#160)

  • Get-SeElementCssValue - support for multiple values / wildcard character (#162)

  • Sleep / Timeout parameters type changed from int to double (Still seconds, but provide more granularity)

  • Invoke-SeScreenshot - support for Element screenshot. You can now easily produce a screenshot of a specific element instead of the whole page. (#168)

  • Added -IgnoreProtectedModeSettings to Start-SeInternetExplorer - #79 - Thanks, @MysticRyuujin!

  • Added Markdown documentation (See Help subfolder) for all the cmdlets (PlatyPS is used behind the scene to maintain it)

  • Added MAML embedded help that can be accessed through Get-Help(eg: Get-Help Start-SeChrome -Examples)

  • Added Get-SeUrl / Pop-SeUrl / Push-SeUrl / Set-SeUrl (Thanks @vexx32)

  • Converted monolythic module into a scaffolded module through a Plaster template. Module will now have a debug version and a compiled version that need to be built with Invoke-Build. See the Debug folder for additional informations on how to debug.

  • Send-SeKeys won't return an exception if you send $null or empty strings.

  • Stop-SeDriver won't throw exceptions anymore when called multiple times on a driver already closed.

Bugfixes

  • Get-SeElement no longer support splatting (#82)
  • Getck driver abysmal performance (#113). Gecko service need to be configured to use localhost ::1. Otherwise, it take significantly more time to do everything with it (#113)
  • Get-SeElement with Timeout return only the first element instead of the collection (#139)
  • Implcit-Wait - Default reduced to 0.3 seconds instead of 10 seconds. One of the problem of implicit wait is that some operation will wait 100% of the defined implicit wait before performing an action. (#146)
  • Implicit / Explicit wait management. Some cmdlet (old an new) uses explicit wait. Explicit wait and Implicit wait should not be mixed together. Therefore, when an explicit wait is used, implicit wait (if present) get temporary disabled(#149)

v2.0

02 Sep 20:05
f030a19
Compare
Choose a tag to compare

Firefox Features (Start-SeFirefox)

  • StartURL
  • DefaultDownloadPath
  • Maximized
  • Minimize
  • Fullscreen
  • Headless
  • PrivateBrowsing

Chrome Features (Start-SeChrome)

  • Allow downloads when using headless Chrome
  • Minimized
  • Fullscreen
  • StartURL
  • ProfileDirectoryPath

Other Features

  • Added the option to delete a cookie by name to Remove-SeCookie
  • Fixed an issue that prevented $null value in Set-SeCookie $ExpiryDate
  • Check Linux and MacOS assemblies files execution and fix them if incorrect.
  • Find-SeElement -Wait
  • Improved Set-SeCookie

1.3-beta1

14 Aug 23:12
487f3b1
Compare
Choose a tag to compare
1.3-beta1 Pre-release
Pre-release
  • Linux and OSX Support
  • Edge Support
  • Chrome Headless Support

PowerShell Gallery