none
Confusion de Visual Studio entre AutomationElement et WpfTable RRS feed

  • Question

  • Bonjour,

    Je valide en ce moment les capacités de Coded UI à répondre à nos besoins en termes d'automatisation de tests de non-régression, et je me heurte à quelques difficultés techniques.

    Dans un même test, je manipule deux datagrids différents déclarés de la même manière selon les développeurs. Lorsque j'utilise le premier, il est déclaré en tant que WpfTable à l'aide du générateur de tests codés de l'interface utilisateur et je parviens sans aucun souci à lancer la méthode dtg.ColumnHeaders.GetNamesOfControls() pour ensuite rechercher mes informations dans le tableau.

    En revanche, en suivant exactement la même méthode pour le second tableau, j'obtiens une exception à l'exécution : "System.Windows.Automation.AutomationElement non pris en charge par le gestionnaire de technologies UIA". A priori, je suis la seconde personne touchée par ce souci si j'en crois les forums de stackoverflow : stackoverflow.com/questions/26545785/wpf-codedui-argumentexception-when-getting-columnheaders-on-a-wpftable-if-a-col . J'ai vérifié le code généré automatiquement et les deux sont bien déclarés en tant que WpfTable et non en tant qu'AutomationElement. Est-ce un problème connu, et existe-t-il une solution de contournement ?


    lundi 10 novembre 2014 11:05

Toutes les réponses

  • Bonjour, H Debris,

     

    S'il vous plaît précisez est-ce que sur la deuxième grille, les colonnes sont au statut "Collapsed" comme c'est marqué dans le lien que vous avez fourni?

    Merci de nous tenir au courant.

     

    Cordialement,

    Téodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 11 novembre 2014 10:02
    Modérateur
  • Bonjour Téodora,

    Je ne vois pas de statut "Collapsed", où puis-je vérifier ce statut ?

    Ce qui me surprend c'est que sur les quatre "grids" que j'utilise, c'est le seul qui ne fonctionne pas. Et pourtant les NativeElement des autres grilles sont eux aussi des System.Windows.Automation.AutomationElement qui fonctionnent en tant que WpfTable.

    mercredi 12 novembre 2014 09:59
  • Bonjour,

    Est-ce que votre problème persiste?

    Pouvez-vous nous montrer votre code dans la partie où vous avez déclaré et appelé les datagrid?

    D'habitude , on doit vérifier les conditions dans cet article quand on obtient une erreur comme ceci  "non pris en charge par le gestionnaire de technologies UIA" :
    Configuration requise du .NET Framework:

    Mais c'est bizarre seulement une de ne pas fonctionner. Quelle est la différence parmi celle qui fonctionne et celle qui ne fonctionne pas?

    Merci de nous tenir au courant.

    Cordialement,

    Nina


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.



    mardi 18 novembre 2014 10:03
    Modérateur
  • Bonjour Nina,

    En effet, c'est bizarre qu'une seule d'entre elles ne fonctionne pas. Voici la déclaration de datagrid réalisée par le générateur :

            public WpfTable UIDtgStayGridTable
            {
                get
                {
                    if ((this.mUIDtgStayGridTable == null))
                    {
                        this.mUIDtgStayGridTable = new WpfTable(this);
                        #region Critères de recherche 
                        this.mUIDtgStayGridTable.SearchProperties[WpfTable.PropertyNames.AutomationId] = "dtgStayGrid";
                        this.mUIDtgStayGridTable.WindowTitles.Add(CodedUI_NR_Tests.dHotelSettings["Ecran"]);
                        #endregion
                    }
                    return this.mUIDtgStayGridTable;
                }
            }
            #endregion

    Je ne vois aucune différence entre ceux qui fonctionnent et celui qui ne fonctionne pas.

    jeudi 20 novembre 2014 09:58