AutomationElement.FindFirst(TreeScope, Condition) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna o primeiro elemento filho ou descendente que corresponde à condição 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
Uma combinação bit a bit de valores que especificam o escopo da pesquisa.
- condition
- Condition
O objeto que contém os critérios para correspondência.
Retornos
O primeiro elemento que atende à condição ou null
se nenhuma correspondência for encontrada.
Exemplos
O exemplo a seguir mostra como encontrar uma janela filho de seu 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
Comentários
O escopo da pesquisa é relativo ao elemento no qual o método é chamado.
Ao pesquisar uma janela de nível superior na área de trabalho, certifique-se de especificar Children em scope
, não Descendants. Uma pesquisa por toda a subárvore da área de trabalho poderia iterar por meio de milhares de itens e levar a um estouro de pilha.
Se o aplicativo cliente tentar encontrar elementos em sua própria interface do usuário, você deverá fazer todas as chamadas Automação da Interface do Usuário em um thread separado.