2017-02-11 2 views
3

J'essaie de capturer tous les éléments de sous-arborescence d'une application particulière, dans certaines machines, je reçois tous les éléments, mais dans certaines machines la moitié des éléments sont manquantes.Windows UI Automation - Ne pas capturer tous les éléments de sous-arborescence

FindAll(TreeScope.Subtree, Condition.TrueCondition); 

J'ai essayé d'installer 4.5 Microsoft .NET Framework mais pas de chance

Quel pourrait être le problème? pourquoi UI Automation se comporte différemment sur différentes machines? Que manque-t-il dans la machine client qui ne permet pas à UI Automation de récupérer tous les éléments enfants?

Microsoft .NET Framework 4.5 SDK est également requis sur le poste client? Configuration du système:

Developers Machine: (travail fin)

Système d'exploitation: Windows 7 Professional

développement App: Visual Studio 2012 Professional

.NET Framework: 4.5.2

.NET Framework SDK: 4.5

machine client: (ne peut pas en mesure d'aller chercher des éléments enfants)

Système d'exploitation: Windows 7 Professional

.NET Framework : 4,5

.NET Framework SDK : NA

Il n'y a aucun logiciel supplémentaire installé dans la machine de développement, Framework et Framework SDK a également été installé par Visual Studio 2012 uniquement.

code à l'élément Fetch est simple, je suis en train de chercher l'élément sur l'emplacement de la souris:

System.Windows.Point _location = new System.Windows.Point(Cursor.Position.X,Cursor.Position.Y); 

AutomationElement _ele = AutomationElement.FromPoint(_location); 

Répondre

0

Je ne sais pas pourquoi le problème existe, mais je l'ai déjà vu dans une application testée que parfois Le nœud parent doit être sélectionné et cliqué pour développer ses nœuds enfants afin qu'ils puissent être vus via l'automatisation.

Donc, ce que vous pouvez faire est de créer votre méthode de recherche personnalisée qui sélectionne et clique sur un nœud pour l'étendre avant d'essayer de récupérer ses nœuds enfants.

+0

Il ne s'agit pas seulement des champs extensibles, dans la plupart des cas (machines), les éléments enfants visibles (comme les étiquettes dans la barre d'état ou les éléments de la grille) ne sont pas non plus accessibles. J'ai essayé d'installer .Net Framework 4.5 mais pas de chance. –

+0

Nous avons déjà essayé avec toutes les versions de .NET de 4.5 à 4.6.2, mais pas de chance. Dans toute la machine des développeurs (où VS est installé) ça marche bien, quelle pourrait être la différence d'environnement? –

+0

Pourrait-il être différent des droits de compte d'utilisateur? Peut-être que vous devriez essayer d'exécuter vos tests en mode administrateur ... – DLDR