- Removed support for .NET Framework below 4.8
- Added Support for .NET 5.0 and 6.0
- Allow to skip logging missing frames info
- Added support for some more properties in XPath
- Added MixedAttributeValue
- Made TryGetClickablePoint more resilend and added a Fallback to BoundingRectangle.Center
- Extended ConditionFactory (thanks @bence-nagy)
- Fix mistype in RightDoubleClick mouse method (thanks @kungfux)
- Fixed Bug Alt+Tab in OverlayForm (thanks @erimeurer)
- None
- Add params on Process.Start (thanks @brunofmeurer)
- Added .NET Core 3.1 Target Framework (thanks @torepaulsson)
- Fixed GID Handle leak (thanks @ChrisZhang95)
- Fixed .NET Core issue were the MainWindowHandle is not refreshed (thanks @torepaulsson)
- None
- Added ByFrameworkType condition
- Allow xpath to find unknown types by mapping them to custom
- Added support for Qt framework type
- Added support for WinForms spinner (thanks @ddeltasolutions)
- Added Capture.ScreensWithElement
- Added customization of InfoOverlay font (thanks @petrsapak)
- Added calendar support (thanks @ddeltasolutions)
- Added date time picker support (thanks @ddeltasolutions)
- Added support for large lists (thanks @ddeltasolutions)
- Added application CloseTimeout and killIfCloseFails flag
- Made the mouse movement speeds settable
- Fixed null error in FrameworkId
- Fix moving the mouse by 0 distance
- Fixed search by AccessibilityRole
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.
- 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 theRetry
methods which contains information about the execution of the currentRetry
- 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 theCapturing
namespace - All
FindIndexed
are consistently renamed toFindAt
- Renamed
Retry.Interval
toRetry.DefaultInterval
- Renamed
Retry.Timeout
toRetry.DefaultTimeout
- .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 f2b444ef7d422344b63a187151112b77ca3299f5 for more)
- FindWithOptions
- New events
- UIA3TextRange3
- ConnectionRecoveryBehaviorOptions and CoalesceEventsOptions
- MatchSubstring for property searching
- Code cleanups
- Added generic
AsType
- Use
UtcNow
instead ofNow
forRetry
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
- 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
toComboBox
- 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)
- 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
- Re-added install.ps1 to UIA3 NuGet package
- Renamed Helpers.WaitXXX to Wait.XXX
- Project now only compiles on VS2017.3 or higher
- Renamed scrollbars (VScrollBar -> VerticalScrollBar, HScrollBar -> HorizontalScrollBar)
- Renamed ScreenCapture to Capture
- Renamed ComCallWrapper to Com
- Changed child collections from various namings to ".Items" (eg. in Menus)
- Renamed State to ToggleState
- Switched build system to cake build
- Various code cleanups and documentation improvements
- Added signed versions (as separate nuget packages)
- Added some convenience properties to the AutomationElement (IsEnabled, IsOffscreen, ...)
- Added HasExited and ExitCode to Application.
- Cleaned SystemProductNameFetcher and added support for Server 2016
- Added IsSupported to AutomationProperty
- Added Parent property
- Added BoundingRectangle,ActualWidth,ActualHeight,ItemStatus and HelpText to AutomationElement
- Implemented FindAt / FindIndexed
- Added ByValue condition
- Added IsReadOnly to ComboBox
- Implemented ToggleButton
- Implemented ListBox and ListBoxItem
- Added IsToggled to ToggleAutomationElement, added IsChecked to ChechBox
- Added DataGridView
- Reworked the Capture class
- Correctly handle manually pressed modifiers when using Keyboard.Type
- Added missing property in RegisterPropertyChangedEvent
- Fixed finding the ScrollBars
- Fixed typo in IPropertyLibrary
- Moved FlaUInspect to its own repository (see https://github.com/FlauTech/FlaUInspect)
- [Core] Added ENTER synonym for RETURN and ESC for ESCAPE
- [Core] Made IsWin32Menu property on menu public
- [Core] Added Select (index and string) for ComboBox
- [Core] Added SelectedItem(s) and Select by cell value to Grid
- [Core] Added a FindCellByText to GridRow
- [Core] Implemented MenuItems with a string indexer
- [Core] Added AutomationElement constructor which is based on another AutomationElement
- [Core] Changed loglevel of "Closing application" to debug
- [Core] Added overload for FindFirstChild and FindFirstDescendant with a string (AutomationId) parameter
- [Core] Fix for WinForms where ComboBox does not support the SelectionPattern
- [Core]Fix when directly setting the text in the combobox in uia2/winforms
- [Core] Reworked the keyboard class a bit (e.g. allow simultaneous presses)
- [All] More code documentation
- [All] Fixed almost all ReSharper warnings
- [UIA3] Used Client interop instead of Core for UIA3
- [Core] Various code cleanups
- [UIA3] Wrapped some more calls in ComCallWrapper
- [Core] Fixed null exception on Window.Close without TitleBar.CloseButton
- [All] Fixed .net 4.5 libraries in the packages
- [Core] Moved As... methods into the AutomationElement
- [Core] Added XMLDoc (also to nuget packages)
- [Core] Return true/false if the application closed normally / forcefully
- [Core] Reworked timeouts on Application.Wait methods (default to infinite)
- [Core] Implemented ComboBoxItem (to correctly get the text for default WPF comboboxes)
- [Core] Added AsHScrollBar and AsVScrollBar
- [Core] WaitWhileBusy and WaitWhileMainHandleIsMissing are now public and to not block endlessly
- [Core] Cleaned the Retry a bit
- [Core] Refactored logging (thanks to jmaxxz)
- [Core] Fallback to property for clickable point if GetClickablePoint fails
- [Core] Fixed XPath when getting it for an element (eg. in FlaUInspect)
- [Core] Merged Table into Grid
- [All] Properties are now wrapped in an AutomationProperty object which provides Value, ValorOrDefault and TryGetValue
- [Al] Patterns are now wrapped in an IAutomationPattern object which provides Pattern, PatternOrDefault, TryGetPattern and IsSupported
- [Core] Properties in the PropertyLibrary now do not contain the name "Property" anymore
- [Core] Renamed .Information to .Properties
- [Inspect] Added Table Patterns support
- [Code] Various code cleanups
- [Core] Added search by XPath
- [All] Implemented caching
- [Core] Set move mouse to false by default
- [Core] Added NoScroll ScrollPatternConstant for SetScrollPercent
- [Inspect] Made supported patterns bold, added more pattern details
- [Core] Added GetAllTopLevelWindows to Application
- [Core] Fixed AndCondition.ToString
- Made ModalWindows a property
- Walk the parents to get a FrameworkType if no FrameWorkType was found
- Added XAML FrameworkType (UWP apps)
- Implemented WPF Popup
- Fixed single items added multiple times (FlaUInspect)
- Added some more pattern information (FlaUInspect)
- Fixed UIA2 tree walker
- Fixed role and state of LegacyIAccessiblePattern
- Added .NET 3.5 and 4.0 versions of FlaUI
- Added more convenience methods to chain the searching
- Added search methods without conditions
- Theoretical support for Win32 scrollbars
- Added more convenience methods to chain the searching
- Removed made mouse and keyboard static, removed their interfaces
- Renamed ListView to Grid
- Renamed the retry methods
- Implemented Table
- Added caching to TreeWalkers
- Further reduced the amount of classes created
- Implemented all text patterns
- Exposed all property, event and textAttrbute ids
- Implemented ScrollBars
- Changed the OverlayManager to WinForms (faster and needs less memory than the WPF one)
- Reduced the amount of classes created
- Exposed AddToSelection and RemoveFromSelection
- Improved the logic for ContextMenu finding (you can manually pass the desired logic)
- Implemented ComboBox
- Implemented TreeWalkers
- Fixed a bug with the retry to speed things up quite a bit
- Added some convenience methods for searching
- Tests now run on German Windows
- ControlType is now properly reported for UIA2
- DoubleClick now does a real double click
- Added many more patterns
- Implemented ContextMenu on Window
- Implemented ListView
- Added True-/FalseCondition
- Fixed UIA3 package to correctly install the interop assembly
- Fixed UIA3 package to correctly install the interop assembly