2012-03-28 7 views
3

Edit: Da meine Frage zu lang war und viele verschiedene Punkte berührte, beschloss ich, sie auf kleinere und spezifischere Fragen zu reduzieren.Ist es möglich, UI-Steuerelemente in MS-codierten UI-Tests zusammenzuführen?

Ich verwende Coded UI-Tests, um automatisiert zu laufen, aber ich erkannte, dass UIMap das exakt gleiche Element immer und immer wieder erzeugt, wenn ich verschiedene Tests auf der Seite anlege. Ist es möglich, diese wiederholten Elemente zusammenzuführen? Bitte beachten Sie folgendes Bild:

enter image description here

Antwort:

Stoj bereitgestellt, um die beste Antwort von http://uimaptoolbox.codeplex.com/ was darauf hindeutet, .Es ist ein großes Werkzeug zu reinigen die fiesen wiederholten Elemente auf.

+1

Ich habe nicht viel Web-Automatisierung gemacht, hast du versucht mit getparent/getchildren das dom zu navigieren? – stoj

+0

GetParent und GetChildren gibt UI Test Control zurück, sodass es die in der .uimap-Datei angezeigten Elemente navigiert. –

+1

Ich habe es zwar getestet, aber ich bin ziemlich sicher, dass GetParent/Child den MSAA/UIAutomation-Baum und nicht die UIMap verwendet. Wenn sie die UIMap verwenden würden, wie würde GetParent auf ein außerhalb der UIMap erstelltes Steuerelement reagieren, ohne dass ein Elternteil den Desktop zurückgibt? – stoj

Antwort

2

Es gibt keine einfache Methode zum gleichzeitigen Ändern der Eigenschaften einer großen Anzahl von Steuerelementen. Wenn die Tests ohne die Eigenschaft inertext funktionieren, können Sie die Datei UIMap.uitest in Ihrem bevorzugten Texteditor öffnen und sie relativ schnell löschen. Keine ideale Lösung, aber schneller als das Gleiche im Testeditor. Sie möchten natürlich eine Sicherungskopie der letzten Datei erstellen.

Wenn die Werte geändert werden müssen, werden die Dinge viel komplizierter. Sie können für jede Sprache eine UIMap erstellen und die XML-Datei manuell mit der entsprechenden Sprache bearbeiten.

Ich glaube nicht, dass es eine Möglichkeit gibt, doppelte Steuerelemente loszuwerden. Es gibt eine UIMap-Toolbox, aber ich bin mir nicht sicher, dass es tatsächlich doppelte Steuerelemente entfernen wird. http://uimaptoolbox.codeplex.com/

+0

Danke für Ihre Antwort stoj. Leider habe ich festgestellt, dass das Entfernen aller "inneren Text" -Kombinationen nicht ausreicht. Ich möchte in der Lage sein, den DOM-Baum zu navigieren (was ich nicht weiß, wenn es möglich ist). Ich habe mir die UI Map-Toolbox angesehen und sie ist perfekt für meine zweite Frage. Dieses Werkzeug fehlt nur die Möglichkeit, Elementeigenschaften zu bearbeiten. –

+0

@ John Louros: Für einfache Bearbeitungen reicht ein einfacher Texteditor und für einfache Elementmanipulationen ist MS XML Notepad das beste Werkzeug. –

1

F1: Mit dem Test-Builder für codierte UI können Sie in der UI-Hierarchie navigieren. http://blogs.msdn.com/b/mathew_aniyan/archive/2010/01/13/coded-ui-test-tip-of-the-day-2-use-the-navigation-dial-to-move-around-in-the-ui-tree.aspx

Q2: UIMap toolbox ist Ihre beste Wette für das Zusammenführen der doppelten Kontrollen. Wir sind uns dieses Problems bewusst und untersuchen, um ein Produkt zu reparieren.

F3: Wir hatten einige Korrekturen für die dynamischen IDs in SharePoint-Steuerelementen vorgenommen. Können Sie es mit Visual Studio 2010 SP1 versuchen? Wenn Sie SP1 verwenden, lassen Sie mich bitte ein bestimmtes Szenario wissen, das für Sie fehlschlägt. Ich kann weiter forschen.

+0

Danke für deine Antwort Mathew, ich arbeite gerade an einer anderen Aufgabe, wenn ich alles fertig habe, bin ich wieder bei der Testlösung.In ein paar Tagen werde ich vielleicht eine ausführlichere Frage haben, wenn nicht, werde ich diese Frage als beantwortet markieren. Danke noch einmal. –

+0

Q1: Ist wahr, wenn Assertions gemacht werden. Wie mache ich es während der Aufnahme neuer Tests? F3: Ich habe einen Test aufgezeichnet, der einfach auf die SharePoint-Websiteeinstellungen zugreift. Als ich die "site actions" -Verbindung aufzeichnete, hatte ich zz9_siteactions id, als ich sie ausführte, hatte sie zz10_siteactions id. Der Test ist nicht fehlgeschlagen, aber der Test konnte nicht auf die Websiteeinstellungsseite zugreifen. –

+0

In Bezug auf Q3 habe ich heute wieder versucht und es hat funktioniert. Dies löst jedoch nicht mein Problem, mehrere Sprachen mit denselben Tests zu unterstützen. –