AutomationElement.FindFirst(TreeScope, Condition) Metoda

Definicja

Zwraca pierwszy element podrzędny lub element podrzędny zgodny z określonym warunkiem.

public:
 System::Windows::Automation::AutomationElement ^ FindFirst(System::Windows::Automation::TreeScope scope, System::Windows::Automation::Condition ^ condition);
public System.Windows.Automation.AutomationElement FindFirst (System.Windows.Automation.TreeScope scope, System.Windows.Automation.Condition condition);
member this.FindFirst : System.Windows.Automation.TreeScope * System.Windows.Automation.Condition -> System.Windows.Automation.AutomationElement
Public Function FindFirst (scope As TreeScope, condition As Condition) As AutomationElement

Parametry

scope
TreeScope

Bitowa kombinacja wartości określających zakres wyszukiwania.

condition
Condition

Obiekt zawierający kryteria, które mają być zgodne.

Zwraca

Pierwszy element, który spełnia warunek lub null jeśli nie zostanie znalezione dopasowanie.

Przykłady

W poniższym przykładzie pokazano, jak znaleźć okno podrzędne z jego identyfikatora.

/// <summary>
/// Find a UI Automation child element by ID.
/// </summary>
/// <param name="controlName">Name of the control, such as "button1"</param>
/// <param name="parentElement">Parent element, such as an application window, or the 
/// AutomationElement.RootElement when searching for the application window.</param>
/// <returns>The UI Automation element.</returns>
private AutomationElement FindChildElement(String controlName, AutomationElement rootElement)
{
    if ((controlName == "") || (rootElement == null))
    {
        throw new ArgumentException("Argument cannot be null or empty.");
    }
    // Set a property condition that will be used to find the main form of the
    // target application. In the case of a WinForms control, the name of the control
    // is also the AutomationId of the element representing the control.
    Condition propCondition = new PropertyCondition(
        AutomationElement.AutomationIdProperty, controlName, PropertyConditionFlags.IgnoreCase);

    // Find the element.
    return rootElement.FindFirst(TreeScope.Element | TreeScope.Children, propCondition);
}
''' <summary>
''' Find a UI Automation child element by ID.
''' </summary>
''' <param name="controlName">Name of the control, such as "button1"</param>
''' <param name="rootElement">Parent element, such as an application window, or the 
''' AutomationElement.RootElement when searching for the application window.</param>
''' <returns>The UI Automation element.</returns>
Private Function FindChildElement(ByVal controlName As String, ByVal rootElement As AutomationElement) _
    As AutomationElement
    If controlName = "" OrElse rootElement Is Nothing Then
        Throw New ArgumentException("Argument cannot be null or empty.")
    End If
    ' Set a property condition that will be used to find the main form of the
    ' target application. In the case of a WinForms control, the name of the control
    ' is also the AutomationId of the element representing the control.
    Dim propCondition As New PropertyCondition(AutomationElement.AutomationIdProperty, _
        controlName, PropertyConditionFlags.IgnoreCase)

    ' Find the element.
    Return rootElement.FindFirst(TreeScope.Element Or TreeScope.Children, propCondition)

End Function 'FindChildElement

Uwagi

Zakres wyszukiwania jest względny względem elementu, na którym wywoływana jest metoda.

Podczas wyszukiwania okna najwyższego poziomu na pulpicie należy określić Children wartość , scopea nie Descendants. Wyszukiwanie całego poddrzewa pulpitu może iterować tysiące elementów i prowadzić do przepełnienia stosu.

Jeśli aplikacja kliencka może spróbować znaleźć elementy we własnym interfejsie użytkownika, musisz wykonać wszystkie automatyzacja interfejsu użytkownika wywołania oddzielnego wątku.

Dotyczy

Zobacz też