I do not believe that there is anything available to show this yet. I usually determine which is the last control that will be matching and wait for it to be created. Since I am initiating the action that causes the re-match this works fine. For event driven rematches, the event itself will indicate that matching is complete. How would you use it an event that informed you matching were occurring?
I've been looking for a matching complete event, so I don't have to determine which control is the last to match.
If there was an IsMatching property, I'd probably create a function with a loop that continually checks if matching is occurring on a page or adapter. Then I'd set a timeout parameter. If no matching occurred within the last X milliseconds, I'd consider matching complete. I'd adjust the timeout per application.
Matching occurs from the inside out. The highest level control will attach first, but all of its children are matched and created before the highest level control is created. Some exceptions to that sequence are tables where content is displayed after the page is matched and dynamic content. You are safe in most cases to focus on the highest level control in the hierarchy.
Does that apply to web page controls or only controls within a web page? I feel like I've checked IsCreated on a web page before but ran into problems where not all of controls in the page were matched yet. Maybe there was some lazy loading going on.
Also, does this same rule apply in Chrome/Firefox?
This applies to all controls. With web there may be some matching that occurs after the page is matched when controls are dynamically generated after the initial page load.
The most obvious case for this is a html table. For an html table, always wait on the table to be created instead of the table section. The table section will be raise a created event for each row, while the table will match only once there is a table section. Occasionally, for slow loading tables you may need to wait until the number of table sections becomes stable.
One strategy that I employ often is to walk through the application in interrogation mode, then filter the log for just the created and destroyed events. The filtered log then shows me the life cycle of each control and the order that they will match. This makes it simple to determine what to wait on for each page.