es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿No se pueden usar los métodos o patrones Expand y Collapse en TreeItems utilizando FlaUI en C #?

Estoy intentando definir una función que expanda o colapse un elemento TreeItem dado a un estado objetivo usando FlaUI para probar un programa en C#.

Puedo encontrar el elemento, pero no puedo acceder a ninguna información ni métodos para expandir y colapsar los elementos TreeItem. Recibo el siguiente error al intentar establecer la variable “currentPattern”. Tampoco pude simplemente ejecutar los métodos Expand y Collapse en el elemento TreeItem.

Error:
FlaUI.Core.Exceptions.PatternNotSupportedException: ‘El patrón solicitado ‘ExpandCollapse [# 10005]’ no es compatible’

La función que he escrito es:
“`
public TreeItem ToggleTreeNode(string inNodeName, ExpandCollapseState inTargetState, AutomationElement inParentNode = null)
{
TreeItem nodeElement = null;
if (inParentNode == null)
{
nodeElement = mSTGOCMainForm.FindFirstDescendant(cf => cf.ByName(inNodeName)).AsTreeItem();
}
else
{
nodeElement = inParentNode.FindFirstDescendant(cf => cf.ByName(inNodeName)).AsTreeItem();
}

// Colapsar o Expandir
var currentPattern = nodeElement.Patterns.ExpandCollapse.Pattern;
var currentState = currentPattern.ExpandCollapseState.Value;

if (inTargetState != currentState)
{
//Realizar la operación
if (inTargetState == ExpandCollapseState.Collapsed)
{
nodeElement.Collapse();
}
else if (inTargetState == ExpandCollapseState.Expanded)
{
nodeElement.Expand();
}
}

return nodeElement;
}

Estoy usando FlaUI.Core y FlaUI.UIA2, versión 3.2.0.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el patrón de “Expandir/Contraer” no es compatible con el elemento TreeItem al que está intentando acceder. Esto podría deberse a varias razones, incluyendo que la aplicación destino no implemente el patrón o que FlaUI no pueda accederlo por alguna razón.

    Una posible solución es intentar utilizar diferentes patrones o métodos para expandir/contraer el elemento TreeItem. Por ejemplo, podría intentar utilizar el método “Invocar” si está disponible, o simular la entrada del teclado para navegar hasta el TreeItem y utilizar las teclas de flecha para expandir/contraer.

    Otra sugerencia es comprobar si la aplicación destino admite la Automatización de la Interfaz de Usuario utilizando la herramienta Inspeccionar u otras herramientas de prueba de Automatización de la Interfaz de Usuario. Si el patrón no es compatible, es posible que necesite buscar una manera diferente de probar la aplicación objetivo.

    Por último, podría intentar contactar con el equipo de desarrollo o la comunidad de FlaUI para obtener ayuda con este problema específico o para depurar el problema aún más.

Comments are closed.