FlaUI v3.0.0 Release Notes

Release Date: 2019-12-09 // almost 2 years ago
  • Introduction

    ๐Ÿš€ This release combines all changes from the 2.x pre-release versions and also new features.
    The main feature is the .NET Core/.NET Standard compatibility for FlaUI.Core and FlaUI.UIA3.

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ“‡ Renamed BasicAutomationElementBase to FrameworkAutomationElementBase
    • Consistent naming for the *Id interfaces/classes (eg. IDockPatternProperties to IDockPatternPropertyIds)
    • Reworked events
    • The Find... methods not do not use Retry anymore, the developer himself needs to decide if he wants to use a retry or not.
    • ๐Ÿšš Moved DrawHighlight to extension methods so that they are fluent and can be made null-safe.
    • Reworked Retry
      • New flag: throwOnTimeout - Defines if Retry should throw when the timeout is reached.
      • New flag: ignoreException - Defines if Retry should continue in case of an exception.
      • New flag: lastValueOnTimeout - Defines if Retry should return the last successful value when it gets to a timeout.
      • New flag: defaultOnTimeout - Defines if Retry should return the default value on a timeout.
      • New Property: timeoutMessage - Allows adding a custom message when a timeout occurs when retrying.
      • Renamed Retry.While to Retry.WhileTrue
      • Added new Retry methods: WhileNull, WhileNotNull, WhileEmpty, Retry.WhileFalse
      • Added a RetryResult object that is returned on the Retry methods which contains information about the execution of the current Retry
      • Added tests
    • ๐Ÿšš Moved AutomationElement one up in the namespace tree
    • Made the As methods extension methods again
    • โœ‚ Removed custom Point/Rectangle and use the one from System.Drawing
    • ๐Ÿšš Moved Capture into the Capturing namespace
    • All FindIndexed are consistently renamed to FindAt
    • 0๏ธโƒฃ Renamed Retry.Interval to Retry.DefaultInterval
    • 0๏ธโƒฃ Renamed Retry.Timeout to Retry.DefaultTimeout

    โœจ Enhancements

    • .NET Core and Standard compatibility
    • โž• Added capture overlays (mouse and info bar)
    • โž• Added a video recorder (see Capturing)
    • โšก๏ธ Updated the interop dlls
    • โž• Added missing features from .NET 4.7.1 in UIA2
    • โž• Added missing features from newer interop in UIA3
      • Transaction- and ConnectionTimeout
      • Selection2 pattern
      • New text attributes
      • New automation properties (CenterPoint, FillColor, ... see f2b444e for more)
      • FindWithOptions
      • New events
      • UIA3TextRange3
      • ConnectionRecoveryBehaviorOptions and CoalesceEventsOptions
      • MatchSubstring for property searching
    • Code cleanups
    • โž• Added generic AsType
    • ๐Ÿ‘‰ Use UtcNow instead of Now for Retry
    • Wait.UntilInputIsProcessed now has an optional timespan parameter
    • Reworked OperationSystems a bit
    • Retry, WaitWhileBusy, WaitWhilemainHandleIsMissing return a bool now to indicate success or failure
    • Capture does not focus the element anymore before capturing as this could have side effects
    • โž• Added missing events
    • โž• Added TextRange3
    • ๐Ÿ”ง Made log levels configurable, added a logger where you can notify for logging events, added an NUnitProgressLogger which logs in real time to the nunit console
    • โž• Added WaitUntilClickable and WaitUntilEnabled
    • 0๏ธโƒฃ Default value for ControlType (thanks to @lukasvogel)
    • Implemented mouse drag from point to point
    • โž• Added a condition to search by a Framework Id (thanks to @SSHenninger)
    • โž• Added AnimationDuration to ComboBox
    • โž• Added a timeout message to Retry
    • โž• Added TextAttributeLibrary
    • โž• Added Retry.Search methods
    • โž• Added IsAvailable property
    • โž• Added .As<T> method
    • โœจ Enhanced DataGrid support for WPF (thanks @sparerd)
    • ๐Ÿ“š More documentation
    • โž• Added various fallbacks to Win32 methods when UIA fails (thanks @ddeltasolutions)
    • โž• Added Touch input support
    • ๐Ÿ”ฆ Exposed MovePixelsPerMillisecond and MovePixelsPerStep in Mouse
    • โž• Added IsChecked property for menu item (thanks @ddeltasolutions)

    ๐Ÿ› Bug fixes

    • โž• Added some sleeps to the mouse drag
    • Made xpath searching more robust (thanks to @lukasvogel)
    • Correctly use collapse in the expand pattern
    • ๐Ÿ›  Fixed LabeledBy property
    • ๐Ÿ›  Fixed null exception when getting the mouse cursor
    • ๐Ÿ›  Fixed an issue that the mouse cursor was not set correctly on multi-monitor environments