I'm trying to use UI Automation with C# to type file path in opened Open
dialog and then press Open button. I'm able to find the dialog itself, but searching for inner elements (file path text box and Open button) gives no result. When I traverse elements tree writing elements to log file, I see that the log is obviously too short and not all elements printed out.
Strange behavior: if I switch with mouse on another window, traversing of the dialog returns all elements and I'm able to find desired controls and interact with them.
I've tried many approaches to bypass the problem:
- open some window, switch to it with
AutomationElement.SetFocus
; - search for element with Win API (
FindWindowEx
); - get
AutomationElement
by point on screen within dialog's bounding rectangle iterating by x and y with some step.
No one approach give me desired result.
What can cause incomplete elements tree using UI Automation and what is workaround for this?
My scenario is:
- test clicks on a button on web page
- standard Windows dialog to select a file is opened
- I'm trying to fill file path text box and press Open button using UI Automation