AutomationElement.FindFirst(TreeScope, Condition) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve 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 especifica o âmbito da pesquisa.
- condition
- Condition
O objeto que contém os critérios para corresponder.
Devoluções
O primeiro elemento que satisfaz a condição, ou null se não for encontrada correspondência.
Exemplos
O exemplo seguinte mostra como encontrar uma janela filha a partir do 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
Observações
O âmbito da pesquisa é relativo ao elemento em que o método é chamado.
Ao procurar uma janela de topo no ambiente de trabalho, certifique-se de especificar Children em scope, não Descendants. Uma pesquisa por toda a subárvore do ambiente de trabalho pode iterar por milhares de itens e levar a um excesso de pilhas.
Se a sua aplicação cliente tentar encontrar elementos na sua própria interface de utilizador, deve fazer todas as chamadas de Automatização da Interface de Utilizador numa thread separada.