Skip to main content

FindControl

Find an automation control within a parent automation control matching the selection criteria.

AutomationControl FindControl(string wantedText);
AutomationControl FindControl(string wantedText, int maxWait);
AutomationControl FindControl(string wantedText, TextMatch textMatch);
AutomationControl FindControl(string wantedText, TextMatch textMatch, int maxWait);
AutomationControl FindControl(string wantedText, string wantedClass);
AutomationControl FindControl(string wantedText, string wantedClass, int maxWait);
AutomationControl FindControl(string wantedText, string wantedClass, TextMatch textMatch);
AutomationControl FindControl(string wantedText, string wantedClass, TextMatch textMatch, int maxWait);
AutomationControl FindControl(Predicate<Control> selectionFunction);
AutomationControl FindControl(Predicate<Control> selectionFunction, int maxWait);

Parameters

wantedText The text or Name value of the AutomationControl. The default match criteria is contains, case insensitive. This value can be none or an empty string "" if you are only matching on wantedClass.

maxWait The maximum time in milliseconds to wait for the window to be created. The default value is 120,000 milliseconds (2 minutes).

textMatch Options are TextMatch.Contains (default), TextMatch.Exact, TextMatch.StartsWith, TextMatch.EndsWith, TextMatch.MatchCase See TextMatch.

wantedClass The window class name.

selectionFunction A reference to a user supplied selection function. See SelectionFunction.

Return Value

An AutomationControl object.

Remarks

Use this method to find a child automation control within a parent automation control.

The window can be matched on the AutomationElement Name value and or a class name or a custom selection function.

If a matching window is not found a TimeoutException is thrown. You can catch this exception as shown below.

Example

AutomationControl notepadWindow = FindTopAutomatioWindow("Untitled - Notepad");
AutomationControl editArea = notepadWindow.FindControl(null, "Edit"); // find the Edit class control in the notepad window

AutomationControl okButton = window.FindControl("OK");

AutomationControl orientButton = setupDialog.FindControl("Landscape", "Button"); // class "Button" with text "Landscape"
orientButton.LeftClick();

AutomationControl explorer_w = FindTopAutomatioWindow(none, "ExploreWClass", 10000); // explorer window, wait for 10 seconds
AutomationControl explorer_w = FindTopAutomatioWindow(myFunction, 10000); // call a user supplied method bool myFunction

AutomationControl window;
try
{
listBox = window.FindControl("", "ListBox", 5000); // wait for 5 seconds
}
catch (Facilita.Exception.TimeoutException e)
{
Error(@"Failed to find ListBox");
}

See also: FindControls