studio
2024.10
true
Studio-Benutzerhandbuch
Last updated 30. Okt. 2024

UI-Automatisierung (UI Automation)

Wichtig: Automatisierungsprozesse, die UIAutomation-Aktivitäten verwenden, können nicht in einem gesperrten Bildschirm ausgeführt werden.

In manchen Fällen ist die normale, manuelle Routine nicht optimal für die Automatisierung. Untersuchen Sie sorgfältig das Verhalten der Anwendung und die Integration/Funktionen von UiPath, bevor sie sich für einen bestimmten Ansatz entschließen.

Hinweis: Die Verwendung der Aktivität Parallel in Verbindung mit UI-Automationsaktivitäten wird nicht unterstützt und führt oftmals zu unvorhergesehenen Konsequenzen.

Desktop-Automatisierung

Die UI-Automatierung wird am besten eingesetzt, wenn Roboter und Anwendungen auf dem gleichen Computer laufen, weil UiPath dann direkt mit der Technologie hinter der Anwendung integrieren kann, um Elemente zu identifizieren, Events auszulösen und die Daten „hinter den Kulissen“ abzurufen.

Eingabemethoden

UiPath verwendet drei Methoden, um eine Klicken- oder Eingeben in-Aktivität auf einer Anwendung auszulösen. Doe werden als Eigenschaften in allen Aktivitäten angezeigt, die mit der UI-Automatisierung arbeiten.

Die Eigenschaften „SimulateType“ und „SimulateClick“

Wenn die Eigenschaft SimulateType oder SimulateClick ausgewählt wird, verbindet sich Studio mit der Anwendung und löst den Ereignishandler eines angegebenen UI-Elements aus (Schaltfläche, Textfeld). Das Ergebnis ist immer abhängig von der Zieltechnologie, wie z. B. einem Webbrowser oder einer Geschäftsanwendung.

Es wird dringend empfohlen, den Zustand des Ziel-UI-Elements vor der Ausführung zu überprüfen, wenn Sie SimulateType oder SimulateClick für die folgenden Aktivitäten aktivieren:

Dieselbe Empfehlung sollte auch für die unten aufgeführten Anwendungen beachtet werden, da diese standardmäßig die Eigenschaft SimulateType oder SimulateClick verwenden und nicht geändert werden können:

Die AlterIfDisabled-Eigenschaft

Die Eigenschaft weist die Zielaktivität an, ob sie mit deaktivierten Elementen interagieren soll oder nicht. Bitte beachten Sie, dass diese Eigenschaft nur berücksichtigt wird, wenn SimulateType oder SimulateClick aktiviert ist. Sie finden die AlterIfDisabled-Eigenschaft für die folgenden Aktivitäten:

Die Eigenschaft „SendWindowMessages“

Wenn die Eigenschaft SendWindowMessages ausgewählt ist, postet Studio die Eventdetails in der Anwendungsnachrichtenschleife und die Fensterprozedur der Anwendung verteilt sie intern an das Ziel-UI-Element.



Studio signalisiert Systemtreibern mithilfe von Hardware-Events, auch wenn keine der obigen Optionen ausgewählt sind, und es lässt das Betriebssystem die Details zum Zielelement verteilen.



Diese Methoden sollten in der vorgestellten Reihenfolge ausprobiert werden, da die Eigenschaften SimulateClick und SendWindowMessages schneller sind und auch im Hintergrund arbeiten. Sie sind jedoch weitestgehend von der Technologie hinter der Anwendung abhängig.

Hardware-Events funktionieren zu 100 %, da Studio Aktionen wie ein menschlicher Betreiber ausführt, wie beispielsweise das Bewegen eines Mauszeigers und das Klicken auf eine bestimmte Position. In diesem Fall muss die zu automatisierende Anwendung jedoch auf dem Bildschirm sichtbar sein. Dies könnte als Nachteil angesehen werden, da das Risiko besteht, dass der Benutzer in die Automatisierung eingreifen kann.

Selektoren

Manchmal schlagen die automatisch generierten Selektoren volatile Attributwerte vor, um Elemente zu identifizieren. In diesem Fall ist eine manuelle Intervention erforderlich, um die Selektoren zu kalibrieren. Ein zuverlässiger Selektor sollte das gleiche Element in allen Zuständen, in Entwicklungs-, Test- und Produktionsumgebungen und unabhängig von den bei der Anwendung angemeldeten Benutzernamen erfolgreich identifizieren.

Hier ein paar Tipps, wie ein Selektor in Selector Editor oder Ui Explorer verbessert werden kann:

  • Ersetzen Sie Attribute mit volatilen Werten mit Attributen, die gleichmäßig und aussagekräftig aussehen.
  • Ersetzen Sie variable Teile eines Attributwerts mit Platzhaltern (*).
  • Falls der Wert eines Attributs ausschließlich aus Platzhaltern besteht (z. B. name=’*’), dann sollte es entfernt werden.
  • Wenn die Bearbeitung der Attribute nicht hilft, versuchen Sie mehr dazwischengeschaltete Container hinzuzufügen.
  • Vermeiden Sie die Verwendung des Attributs idx, es sei denn sein Wert ist eine sehr kleine Nummer, wie 1 oder 2.


Im obigen Selektor haben wir bemerkt, dass der Seitentitel eine Referenz zu der Zeit hat, zu dem der Selektor aufgezeichnet wurde, und dass einige Attribute zufällig aussehende IDs haben. Indem wir die Attribute optimieren, erhalten wir einen besseren Selektor als den, denn der UiPath-Aufzeichner vorgeschlagen hatte.



Container

Ähnlich wie Dateipfade können Selektoren vollständig oder partiell (relativ) sein. Vollständige Selektoren beginnen mit einem Fenster oder einer HTML-ID und haben alle erforderlichen Informationen, um ein Element auf dem gesamten Desktop zu finden. Partielle Selektoren funktionieren nur in einem Anhang/Container, der das Fenster der oberste Ebene festlegt, in dem sich die Elemente befinden sollen:

  • OpenBrowser
  • OpenApplication
  • AttachBrowser
  • AttachWindow

Hier noch ein paar weitere Informationen zu Vollständigen vs. partiellen Selektoren.

Es gibt mehrere Vorteile, Container mit partiellen Selektoren anstelle von vollständigen Selektoren zu verwenden:

  • Visuelle Gruppierung von Aktivitäten, die auf der gleichen Anwendung funktionieren.
  • Etwas schneller, weil nicht jedes Mal nach dem obersten Fenster gesucht wird.
  • Die Verwaltung von Selektoren der obersten Ebene ist einfacher, falls manuelle Aktualisierungen erforderlich sind.
  • Essenziell, wenn an zwei Instanzen der gleichen Anwendung gearbeitet wird.

Bild-Automatisierung

Die Bild-Automatisierung ist der letzte Ansatz bei der Automatisierung von Anwendungen, wenn nichts anderes funktioniert, um UI-Elemente auf dem Bildschirm zu identifizieren (wie Selektoren oder Tastaturkürzel). Weil bei der Bildübereinstimmung Elemente vollständig auf dem Bildschirm sichtbar sein müssen und alle sichtbaren Details während der Laufzeit und während der Entwicklung die gleichen sein müssen, muss bei der Bild-Automatisierung besondere Sorgfalt angewendet werden, damit der Prozess zuverlässig abläuft. Wenn mehr/weniger eines Bildes ausgewählt wird als notwendig, kann dies dazu führen, dass das Bild nicht gefunden wird oder zu einer Falsch-Positiv-Übereinstimmung.

Auflösungserwägungen

Die Bildübereinstimmung hängt sehr von Umgebungsvariationen wie dem Desktop-Design oder der Bildschirmauflösung ab. Wenn die Anwendung in Citrix läuft, sollte die Auflösung größer oder gleich derjenigen sein, die beim Aufzeichnen der Workflows angewendet wurde. Andernfalls können kleine Bildabweichungen durch eine leichte Verringerung des Genauigkeitsfaktor des erfassten Bildes kompensiert werden. Überprüfen Sie, wie das Anwendungslayout sich an verschiedene Auflösungen anpasst, um die Nähe zu visuellen Elementen sicherzustellen, besonders in dem Fall von auf Koordinaten basierenden Techniken, wie der relative Klick oder der relative Scrape.

Falls die Automatisierung unterschiedliche Auflösungen unterstützt, können parallele Aufzeichnungen innerhalb einer PickBranch-Aktivität platziert werden, und der Roboter kann zwischen den beiden Übereinstimmungen auswählen.

OCR-Engines

Wenn OCR ein gutes Ergebnis für die Anwendung zurückgibt, ist die Text-Automatisierung eine gute Alternative zur Minimierung der Umgebungsbeeinflussing. Die Google Tesseract-Engine funktioniert besser für kleinere Bereiche, und Microsoft MODI für größere.

Wenn Sie die MODI-Engine in Schleifenautomatisierungen verwenden, kann dies gelegentlich zu Speicherverlusten führen. Daher wird empfpohlen, dass das Scraping mit MODI über einen separaten Workflow ausgeführt wird, unter Verwendung der Eigenschaft Isoliert (Isolated).

UI-Synchronisierung

Wenn die Anwendung sich nicht in dem Zustand befindet, in dem der Workflow annimmt, dass sie sich befindet, wird vermutlich unerwartetes Verhalten auftreten. Das erste, worauf zu achten ist, ist die Zeit, die die Anwendung braucht, um auf die Roboter-Anwendungen zu reagieren.

Mit der Eigenschaft DelayMS können Sie einige Zeit warten, bis die Anwendung reagiert. Es gibt jedoch Situationen, in denen der Zustand einer Anwendung validiert werden muss, bevor mit bestimmten Schritten in einem Prozess fortgefahren wird. Zu diesen Maßnahmen können extra Aktivitäten gehören, die vor anderen Interaktionen auf den gewünschten Anwendungszustand warten. Aktivitäten, die helfen könnten:

Hintergrund-Automatisierung

Wenn eine Automatisierung dazu gedacht ist, den Desktop mit einem menschlichen Benutzer zu teilen, müssen alle UI-Interaktionen im Hintergrund implementiert werden. Das bedeutet, dass die Automatisierung mit den UI-Elementobjekten direkt arbeiten muss und das Anwendungsfenster während des Prozesses verborgen oder minimiert werden kann.

Anleitungen

Wie Sie die Chrome-/Edge-/Firefox-Automatisierung in BiB ausführen, ohne Ihre Arbeit in der Hauptsitzung zu unterbrechen

Wenn Sie die Webautomatisierung mit einem Chrome-/Edge-/Firefox-Browser in der untergeordneten Sitzung eines Bild-in-Bild-Modus (BiB) ausführen und den Browser in der Hauptsitzung weiter verwenden möchten, beachten Sie, dass Chrome sowie Edge nicht gleichzeitig in verschiedenen Sitzungen gestartet werden können, während sie dasselbe Benutzerdatenverzeichnis verwenden.

Der Standardordner wird vom Browser beim ersten Start erstellt. Unter Windows ist der Speicherort des Standardordners %LOCALAPPDATA%\Google\Chrome\User Data. Ihre Browserprofildaten werden hier gespeichert und jedes neue Browserprofil, das Sie erstellen, hat seinen eigenen Bereich: Navigationsverlauf, Lesezeichen und Cookies.
Wenn Sie als Benutzer den Browser aus einem bestimmten Grund mit Ihrem eigenen benutzerdefinierten Datenordner starten möchten, ist dies möglich, indem Sie den Browser mit dem folgenden Befehl starten: chrome.exe --user-data-dir=c:\foo. Alle Ihre Profildaten werden in diesem benutzerdefinierten Ordner gespeichert.

Um diese Einschränkung zu umgehen, bieten die modernen UseApplicationBrowser- und klassischen OpenBrowser-Aktivitäten eine sofort einsatzbereite Lösung: die Eigenschaften UserDataFolderMode und UserDataFolderPath, welche die Aktivität anweisen, den Browser mit seinem Standardordner zu starten, der automatisch von der Aktivität generiert wird, oder mit einem benutzerdefinierten, der durch letztere Eigenschaft angegeben wird.

Sehen wir uns die Funktionsweise dieser Eigenschaften einmal genauer an.

1. Fall

Sie möchten nicht alle Details über den Benutzerdatenordner kennen, sondern Sie möchten einfach, dass die Automatisierung den Browser im BiB-Modus startet und ihre Arbeit erledigt, damit Sie Ihre eigene Arbeit in der Hauptsitzung erledigen können. Dann lassen Sie den BenutzerdatenOrdnermodus einfach leer. Der Standardwert wird als „Automatisch“ aus dem Abschnitt Projekteinstellungen/ApplicationBrowser übernommen: Der Roboter erstellt automatisch einen temporären Datenordner/ein Profil für Sie, um die Automatisierung im BiB-Modus auszuführen.

2. Fall

Sie möchten die Automatisierung im BiB-Modus mit dem standardmäßigen Benutzerdatenordner ausführen, da er Ihr Standardprofil und den gesamten Anmeldeverlauf und alle Cookies Ihrer geschäftlichen Apps enthält. Legen Sie BenutzerdatenOrdnermodus auf DefaultFolder fest. Bitte beachten Sie, dass ein einfaches Starten des Browsers in Ihrer Arbeitssitzung erst möglich ist, nachdem die BiB-Automatisierung abgeschlossen und/oder der BiB-Browser angehalten wurde.

3. Fall

Sie kennen sich gut aus und verstehen die Browsereinschränkungen sowie die Funktionen von UiPath. Legen Sie BenutzerdatenOrdnermodus auf CustomFolder und BenutzerdatenOrdnerpfad auf einen Pfad Ihrer Wahl fest.

In allen oben genannten Fällen empfehlen wir, die Erweiterung per Gruppenrichtlinie zu installieren. Dadurch ist die Erweiterung für alle Browserprofile verfügbar und aktiviert, unabhängig davon, ob sie in standardmäßigen oder benutzerdefinierten Benutzerdatenordnern erstellt werden.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo White
Vertrauen und Sicherheit
© 2005–2024 UiPath. Alle Rechte vorbehalten