2016-07-24 20 views
1

Ranorex Experten,Ranorex: Finden Element durch Automatisierung ID

Ich bin neu in Ranorex und versuchen Ranorex C# API für eine Windows-Desktop-Anwendung zu verwenden. Wie finde ich ein Element nur nach Automatisierungs-ID/Text in C#?

die Suche nach so etwas wie,

mainWindow.Get(SearchCriteria.ByAutomationId("<automationId>")) 
mainWindow.Get<Button>("<automationId>"); 

oder

mainWindow.Button.GetElement("<automationId>"); 

Aber in der API-Dokumentation, alles, was ich sehen kann, ist XPath (RanoreXPath) basierte Objektidentifikation.

Antwort

0

Um die XPath-Syntax zum Suchen eines Elements zu finden, wird dringend empfohlen, den Ranorex Spy zu verwenden (würde Ihnen viel Zeit sparen).

Ich würde auch empfehlen, den Recorder anstelle von direkt Benutzercode verwenden, weil es die automatisierte Tests Wartung erheblich vereinfacht ... (und erleichtern lernen Ranorex). BTW, wenn Sie eine Aufnahme mit dem Rekorder erstellen und die entsprechende Quelldatei öffnen, sehen Sie den entsprechenden Code, der für die von Ihnen aufgezeichnete Aktion erforderlich ist. Spart viel Zeit bei der Entwicklung von Benutzercode ...

Hoffe, das zeigt Ihnen in die richtige Richtung.

2

Sie müssen nicht die ganze XPath geben, aber so etwas wie dieses

Host.Local.FindSingle("//button[@automationid='autoidname']"); 

Quelle verwenden: http://www.ranorex.com/support/user-guide-20/ranorexpath.html

+0

Da Suresh einen Verweis auf die AUT hinzugefügt hat, ist es eine gute Idee, das Zielformular auch zum Xpath hinzuzufügen. Dies führt zu einer schnellen Identifizierung des Elements. Z.B. form spezifizierte xpath wäre: "/ form [@ title = 'TheTitle'] // div [@innertext = 'Testdaten']". Das "//" bedeutet, dass das Div irgendwo im Formular verschachtelt ist und kein direkter Nachkomme ist. Um auch einige Aktionen darauf zu verwenden, sollten Sie eine Instanz eines Objekts davon erstellen. So zum Beispiel für HTML-Link: "ATag aLink = Host.Local.FindSingle (" [@ domain = 'www.google.com']) // a [@ innertxt = 'Bilder']); "und dann verwenden Sie es als "aLink.PerformClick();" – Martin

0

Wissen Sie, wo es sich befindet? Ca? Wenn ja, öffne SPY, klicke auf "Track" und dann auf den Bereich, in dem sich dein Element befindet. Im Spion navigieren Sie zum Reiter "BROWSER & ERGEBNISSE" und schauen Sie durch den Baum. Auf der rechten Seite können Sie die Registerkarten "Overview/Advanced" sehen, während Sie auf der Registerkarte "Advanced" nach unten scrollen und nach dem Namen Ihres Elements suchen.

Auch Sie können dies versuchen: Bearbeiten Sie den Pfad zu Ihrem Element und klicken Sie auf "Übernehmen". Zum Beispiel, wie oben vorgeschlagen - benutze .//text[@automationid='DealerNameText '] oder .//button[@automationid='ButtonPause' und @ visible = 'true'] hängt von deinem Element ab. Check out, hat mir sehr geholfen https://www.ranorex.com/support/user-guide-20/ranorexpath.html

+0

Forgot to add, wenn Sie den Typ Ihres Elements kennen, können Sie dies tun: /form [@ processname = 'MyApp'] // container [@ automationid = 'MyElementName'] /form [@ processname = 'MyApp'] = root-Prozess // = alle Nachkommen. Dies ist sehr wichtig! Wenn Sie nicht sicher sind, wo Ihr Element liegt, aber Sie Typ und Name wissen, verwenden Sie einfach dieses Beispiel. container = type [@automationid = 'MyElementName'] = Name meines Elements – Sunguresat