This release introduces a new way to search: the wildcard search.
In most situations, this new option is transparent to user: all the previous code should continue working as earlier.
The goal of this addition, along with added earlier abilities to find windows and controls through FindWindow/FindWindowEx API calls, or timeouts the Get- and Wait- cmdlets are born with, is to continuously eliminate fragility of tests.
One of the most serious problems, especially developers are independent form testers, is handling inexplicable changes in AUT's UI. There may be changed almost everything, from the window caption to controls' automation Ids.
To lose a good bunch of test results only because someone changed a title (name) of a control or a window? The nightmare we can possibly avoid.
Since now, you can simply use wildcards (that is almost free text search as 'Connect*project' may mean 'Connect to Project' or 'Connect to a new project') is Name, AutmationId, and Class parameters.
Please notice, however, that the current implementation returns the first match, whatever it is: the name, or automation id, or class name.
Shortly, the search (Get-) for a control works now in the following sequence:
1. regular search (exact match)
2. wildcard search
3. FindWindow/FindWindowEx search
4. OnSleep actions if any
5. sleep interval
1-5 again and again, until timeout expires or one or searches returns a coveted thing
The search for a window is somewhat simpler and never includes recursion (all the windows, desktop menus or other elements and whatever may be a child of the RootElement is subject to search only among the immediate children of the RootElement).
If you are prefer using only specific type(s) of search (for instance, you don't need to use FindWindowEx or your application has not a lot of controls, so that your choice is the wildcard search whenever you search for a control), there are three constants (that further will be moved to profiles);UIAutomation.Preferences
Also, the default timeout is set to 5000 (5 seconds).