Compartir vía


AutomationElement.FindFirst(TreeScope, Condition) Método

Definición

Devuelve el primer elemento secundario o el elemento descendiente que coincide con la condición especificada.

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

Parámetros

scope
TreeScope

Combinación bit a bit de valores que especifica el ámbito de la búsqueda.

condition
Condition

Objeto que contiene los criterios que deben coincidir.

Devoluciones

Primer elemento que satisface la condición o null si no se busca ninguna coincidencia.

Ejemplos

En el ejemplo siguiente se muestra cómo buscar una ventana secundaria desde su identificador.

/// <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

Comentarios

El ámbito de la búsqueda es relativo al elemento en el que se llama al método .

Al buscar una ventana de nivel superior en el escritorio, asegúrese de especificar Children en scope, no Descendantsen . Una búsqueda a través de todo el subárbol del escritorio podría recorrer en iteración miles de elementos y provocar un desbordamiento de pila.

Si la aplicación cliente podría intentar buscar elementos en su propia interfaz de usuario, debe realizar todas las llamadas Automatización de la interfaz de usuario en un subproceso independiente.

Se aplica a

Consulte también