- Versionshinweise
- Erste Schritte
- Einstellung und Konfiguration (Setup and Configuration)
- Automationsprojekte
- Über die Veröffentlichung von Automatisierungsprojekten
- Entwerfen von Automatisierungen
- Verwalten von Aktivitätspaketen
- Konfigurieren von Aktivitätsprojekteinstellungen
- Signieren von Paketen
- Governance
- Importieren von Entitäten
- Moderne Designumgebung
- Verknüpfen eines Projekts mit einer Idee im Automation Hub
- Verwenden des Data Managers
- Abhängigkeiten
- Workflow-Typen
- Dateivergleich
- Beste Praktiken für die Automatisierung (Automation Best Practices)
- Integration der Quellenkontrolle
- Debugging
- Das Diagnose-Tool
- Workflow-Analyse
- Über die Workflow-Analyse
- ST-NMG-001 – Namenskonvention für Variablen
- ST-NMG-002 – Namenskonvention für Argumente
- ST-NMG-004 – Duplizierung des Anzeigenamens
- ST-NMG-005 – Variable überschreibt Variable
- ST-NMG-006 – Variable überschreibt Argument
- ST-NMG-008 – Variablenlänge überschritten
- ST-NMG-009: Datentabellenvariablen mit Präfix versehen
- ST-NMG-011 – Datentabellenargumente mit Präfix versehen
- ST-NMG-012 – Standardwerte für Argumente
- ST-NMG-016 – Argumentlänge überschritten
- ST-DBP-002 – Hohe Anzahl von Argumenten
- ST-DBP-003 – Leerer Catch-Block
- ST-DBP-007 – Mehrere Flussdiagrammebenen
- ST-DBP-020 – Nicht definierte Ausgabeeigenschaften
- ST-DBP-021 – Hartcodiertes Timeout
- ST-DBP-023 – Leerer Workflow
- ST-DBP-024 – Prüfung der Persistenzaktivität
- ST-DBP-025 – Voraussetzung für Variablenserialisierung
- ST-DBP-026 – Verwendung der Verzögerungsaktivität
- ST-DBP-027 – Bewährte Methode für Persistenz
- ST-DBP-028 – Voraussetzung für Argumentenserialisierung
- ST-USG-005 – Hartcodierte Aktivitätsargumente
- ST-USG-009 – Nicht verwendete Variablen
- ST-USG-010 – Nicht verwendete Abhängigkeiten
- ST-USG-014 – Paketbeschränkungen
- ST-USG-020 – Minimale Protokollmeldungen
- ST-USG-024 – Nicht verwendet, gespeichert für später
- ST-USG-025 – Missbrauch gespeicherter Werte
- ST-USG-026 – Aktivitätseinschränkungen
- ST-USG-027 – Erforderliche Pakete
- ST-USG-028 – Aufruf von Dateivorlagen einschränken
- ST-USG-032 – Erforderliche Tags
- ST-USG-034 – Automation Hub-URL
- Variablen
- Argumente
- Importierte Namespaces
- Codierte Automatisierungen
- Einleitung
- Registrieren von benutzerdefinierten Diensten
- „Vor“- und „Nach“-Kontexte
- Integrieren von OpenAI in codierte Workflows
- Beantragen eines Kredits bei der UiBank
- Warteschlangengenerierung mit codierten Workflows und Orchestrator-APIs
- Verwenden importierter Bibliotheksprojekte in codierten Automatisierungen
- Triggerbasierte Attended-Automatisierung
- Aufzeichnung
- UI-Elemente
- Kontrollfluss
- Selektoren
- Objekt-Repository
- Data-Scraping
- Bild- und Textautomatisierung
- Automatisierung von Citrix-Technologien
- RDP-Automatisierung
- Salesforce-Automatisierung
- SAP-Automation
- VMware Horizon-Automatisierung
- Protokollierung
- Das Tool ScreenScrapeJavaSupport
- Das WebDriver-Protokoll
- Studio Testing
- Erweiterungen
- Über Erweiterungen
- SetupExtensions-Tool
- „UiPathRemoteRuntime.exe“ wird nicht in der Remotesitzung ausgeführt.
- UiPath Remote Runtime blockiert das Schließen der Citrix-Sitzung
- UiPath Remote Runtime verursacht Speicherverlust
- Versionen von UiPath.UIAutomation.Activities-Paket und UiPath Remote Runtime stimmen nicht überein
- Die erforderliche UiPath-Erweiterung ist auf der Remotemaschine nicht installiert
- Einstellungen für die Bildschirmauflösung
- Gruppenrichtlinien
- Kommunikation mit Browser nicht möglich
- Die Chrome-Erweiterung wird automatisch entfernt
- Möglicherweise ist die Erweiterung beschädigt
- Überprüfen Sie, ob die Erweiterung für Chrome installiert und aktiviert ist
- Überprüfen Sie, ob ChromeNativeMessaging.exe ausgeführt wird
- Überprüfen der korrekten Definition der ComSpec-Variablen
- Aktivieren Sie den Zugriff auf Datei-URLs und den Inkognito-Modus
- Mehrere Browser-Profile
- Group Policy conflict
- Spezifische bekannte Probleme für MV3-Erweiterungen
- Liste der Erweiterungen für Chrome
- Chrome-Erweiterung für Mac
- Gruppenrichtlinien
- Kommunikation mit Browser nicht möglich
- Die Edge-Erweiterung wird automatisch entfernt
- Möglicherweise ist die Erweiterung beschädigt
- Überprüfen, ob die Erweiterung für Microsoft Edge installiert und aktiviert ist
- Überprüfen Sie, ob ChromeNativeMessaging.exe ausgeführt wird
- Überprüfen der korrekten Definition der ComSpec-Variablen
- Aktivieren des Zugriffs auf Datei-URLs und den InPrivate-Modus
- Mehrere Browser-Profile
- Group Policy conflict
- Spezifische bekannte Probleme für MV3-Erweiterungen
- Liste der Erweiterungen für Edge
- Erweiterung für VMware Horizon
- SAP Solution Manager-Plugin
- Excel-Add-in
- Fehlersuche und ‑behebung
- Informationen zur Fehlerbehebung
- Microsoft App-V – Unterstützung und Einschränkungen
- Fehlerbehebung bei Internet Explorer x64
- Probleme in Microsoft Office
- Erkennen von UI-Elementen in PDF mit Zugriffsoptionen.
- Reparieren der Active Accessibility-Unterstützung
- Die Validierung großer Windows-Legacy-Projekte dauert länger als erwartet

Studio-Benutzerhandbuch
Dieses Tutorial zeigt Ihnen, wie Sie Objekte aus importierten Bibliotheksprojekten in codierten Automatisierungen verwenden. Das Beispiel veranschaulicht, wie Object Repository-Elemente und Workflows aus einem importierten Bibliotheksprojekt verwendet werden. Das angegebene Szenario beinhaltet die Automatisierung der Acme-Website, um eine Bewertungskarte für Studenten auszufüllen und zur Datenbank hinzuzufügen.
- Installieren Sie die UIAutomation-Aktivitäten Version 23.10.13 oder höher.
Hinweis: Wir empfehlen Ihnen, die neueste Nebenversion zu verwenden, die der Hauptversion entspricht, mit der Sie arbeiten. Wenn Sie beispielsweise die Hauptversion 23.10 der Aktivitätspakete verwenden, empfehlen wir Ihnen, diese auf die neueste verfügbare Nebenversion (
23.10.x
) zu aktualisieren. - Veröffentlichen Sie das Acme-Bibliotheksbeispiel, und installieren Sie es in dem Projekt, in dem Sie arbeiten.
.xaml
) oder codierten Workflow (.cs
) innerhalb des Bibliotheksprojekts, den Sie später in einer anderen codierten Automatisierung verwenden werden.
- Erstellen Sie ein Bibliotheksprojekt namens
AcmeLibrary
. - Erfassen Sie alle UI-Elemente, die Sie im Object-Repository und im Abschnitt Deskriptoren verwenden möchten.
- Erstellen Sie einen neuen codierten Workflow aus der Gruppe Datei.
Dieser Schritt ist entscheidend, um den Zugriff auf das Object-Repository innerhalb einer codierten Automatisierung zu ermöglichen, wenn die Bibliothek in ein anderes Projekt importiert wird.
- Benennen Sie den Low-Code-Hauptworkflow in
Send message box
um und fügen Sie eine Aktivität Message Box mit dem folgenden Text hinzu: „Sie haben eine neue Bewertungskarte für einen Studenten in Acme hinzugefügt.“Hinweis: Sie können die Aktivität Message Box auch als codierten Workflow neu erstellen, indem Sie die im Tutorial beschriebenen Schritte ausführen. - Speichern und veröffentlichen Sie das Bibliotheksprojekt in einem Feed.
Sie installieren und verwenden diese veröffentlichte Bibliothek in einem anderen Projekt innerhalb einer codierten Automatisierung.
.xaml
) oder codiert (.cs
).
IScreenDescriptor
mit bestimmten Parametern für die Arbeit mit Elementen aus der Objektablage vorgesehen IElementDescriptor
sind, während die Overloads mit anderen Parametern für die Verwendung mit nativen Selektoren gedacht TargetAnchorableModel
sind, die über den UI Explorer abgerufen werden.Mehr zu der Nutzung von Selektoren mit den codierten Automatisierungs-APIs von UI Automation finden Sie unter Codierte Automatisierungs-APIs UI Automation.
- Erstellen Sie in der Gruppe Datei einen neuen codierten Workflow.
- Wechseln Sie zu Pakete verwalten und installieren Sie das zuvor erstellte Bibliotheksprojekt.
- Erstellen Sie in der Gruppe Datei einen neuen Workflow.
- Nennen Sie den Workflow
notifyStudentScoreCardAdded
. - Navigieren Sie zum Bereich Aktivitäten zum Abschnitt Installiert.
- Suchen Sie nach dem Namen des importierten Bibliotheksprojekts (zum Beispiel
AcmeLibrary
). - Ziehen Sie die Aktivität
Send message box
innotifyStudentScoreCardAdded
und legen Sie sie dort ab.Jetzt hatnotifyStudentScoreCardAdded
das gleiche Verhalten wie derSend message box
-Workflow aus dem importierten Bibliotheksprojekt.
- Nennen Sie den Workflow
- Um die Lesbarkeit zu verbessern, können Sie die importierte Object Repository-Anwendung als Variable definieren, indem Sie eine
using
-Anweisung zu Beginn Ihres Workflows anwenden. Hier ist ein Beispiel:using app = <ProjectName>.ObjectRepository.Descriptors
.Mit diesem Ansatz können Sie Deskriptoren einfach im folgenden Format aufrufen:app.<AppName>.<ScreenName>.<UiElementName>
In diesem Beispiel definieren wir das Acme Object-Repository wie folgt:namespace UsingImportedLibraryProjects { using AcmeApp = AcmeLibrary.ObjectRepository.Descriptors;
namespace UsingImportedLibraryProjects { using AcmeApp = AcmeLibrary.ObjectRepository.Descriptors; - Jetzt können Sie das gegebene Szenario in Acme automatisieren. Öffnen Sie zunächst den Anmeldebildschirm von Acme mithilfe der codierten Automatisierungs-API Open.
[Workflow] public void Execute() { // 1.Open the Acme app on the Login screen var AcmeLoginScreen = uiAutomation.Open(AcmeApp.Acme.LoginScreen);
[Workflow] public void Execute() { // 1.Open the Acme app on the Login screen var AcmeLoginScreen = uiAutomation.Open(AcmeApp.Acme.LoginScreen); - Geben Sie die erforderlichen Zugangsdaten für die Anmeldung bei Acme mithilfe der codierten Automatisierungs-API TypeInto ein.
// 2.Type in the necessary credentials AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Email, "john.doe2023@uipath.com"); AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Password, "12345678");
// 2.Type in the necessary credentials AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Email, "john.doe2023@uipath.com"); AcmeLoginScreen.TypeInto(AcmeApp.Acme.LoginScreen.Password, "12345678"); - Verwenden Sie die codierte Automatisierungs-API zusammen mit einem nativen Selektor, um auf die Taste Anmelden klicken.
// 3.Use a native selector to click the Login button AcmeLoginScreen.Click(Target.FromSelector("<webctrl tag='BUTTON' type='submit'/>"));
// 3.Use a native selector to click the Login button AcmeLoginScreen.Click(Target.FromSelector("<webctrl tag='BUTTON' type='submit'/>")); - Über den Anmeldeprozess gelangen Sie zum Bildschirm Dashboar der Webanwendung von Acme. Verwenden Sie daher die codierte Automatisierungs-API Attach, um den Fokus auf den neuen Bildschirm zu legen.
// 4. Focus on the Dashboard screen var DashboardScreen = uiAutomation.Attach(AcmeApp.Acme.Dashboard);
// 4. Focus on the Dashboard screen var DashboardScreen = uiAutomation.Attach(AcmeApp.Acme.Dashboard); - Wählen Sie den Eintrag Studierende auf der Website mithilfe der codierten Automatisierungs-API.
// 5. Click the Students entry DashboardScreen.Click(AcmeApp.Acme.Dashboard.Students);
// 5. Click the Students entry DashboardScreen.Click(AcmeApp.Acme.Dashboard.Students); - Wählen Sie Ergebniskarte, um das Formular Studierende – Ergebniskarte mithilfe der codierten Automatisierungs-API Click zu öffnen.
// 6. Click Score card, to start filling in a student score card DashboardScreen.Click(AcmeApp.Acme.Dashboard.Students.ScoreCard);
// 6. Click Score card, to start filling in a student score card DashboardScreen.Click(AcmeApp.Acme.Dashboard.Students.ScoreCard); - Legen Sie den Fokus auf den Bildschirm Studierende – Ergebniskarte mithilfe der codierten Automatisierungs-API Attach.
// 7. Focus on the Score Card screen where you fill in the necessary information var ScoreCardScreen = uiAutomation.Attach(AcmeApp.Acme.StudentsScoreCard);
// 7. Focus on the Score Card screen where you fill in the necessary information var ScoreCardScreen = uiAutomation.Attach(AcmeApp.Acme.StudentsScoreCard); - Füllen Sie die Hälfte der Felder im Formular Studierende – Ergebniskarte mithilfe der codierten Automatisierungs-API TypeInto und Elemente aus der Objektablage.
ScoreCardScreen.TypeInto(AcmeApp.StudentsScoreCard.StudentEmail, "john.doe@uipath.com"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.FirstName, "John"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.LastName, "Doe"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.ParentEmail, "johnny.doe@uipath.com"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.Tuition, "Private");
ScoreCardScreen.TypeInto(AcmeApp.StudentsScoreCard.StudentEmail, "john.doe@uipath.com"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.FirstName, "John"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.LastName, "Doe"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.ParentEmail, "johnny.doe@uipath.com"); ScoreCardScreen.TypeInto(AcmeApp.Acme.StudentsScoreCard.Tuition, "Private"); - Füllen Sie die restlichen Felder im Formular mithilfe der codierten Automatisierungs-API TypeInto zusammen mit nativen Selektoren, die Sie über den UI-Explorer finden.
ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='mathematics' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='physics' tag='INPUT' />"), "B"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='biology' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='chemistry' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='geography' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='history' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='english' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='computer Science' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='professorComments' tag='INPUT' />"), "The student is doing okay, very hardworking and does its best");
ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='mathematics' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='physics' tag='INPUT' />"), "B"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='biology' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='chemistry' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='geography' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='history' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='english' tag='INPUT' />"), "A"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='computer Science' tag='INPUT' />"), "C"); ScoreCardScreen.TypeInto(Target.FromSelector("<webctrl id='professorComments' tag='INPUT' />"), "The student is doing okay, very hardworking and does its best"); - Wählen Sie Details zur Ergebniskarte hinzufügen mithilfe der codierten Automatisierungs-API Click.
// 10. Click the "Add score card details" button using an Object Repository descriptor ScoreCardScreen.Click(AcmeApp.Acme.StudentsScoreCard.AddScoreCardDetailsButton);
// 10. Click the "Add score card details" button using an Object Repository descriptor ScoreCardScreen.Click(AcmeApp.Acme.StudentsScoreCard.AddScoreCardDetailsButton); - Rufen Sie den Workflow auf, den Sie mit der
RunWorkflow()
-Methode aus dem Bibliotheksprojekt importiert haben. Geben Sie die Methode mit dem Pfad des Workflows innerhalb des Projekts an.// 11. Invoke imported workflow from library RunWorkflow("notifyStudentScoreCardAdded.xaml");
// 11. Invoke imported workflow from library RunWorkflow("notifyStudentScoreCardAdded.xaml"); - Schließen Sie die geöffneten Registerkarten des Browsers mithilfe der codierten Automatisierungs-API
Dispose()
.// 12. Close the applications/browsers you opened, to finish he automation ScoreCardScreen.Dispose();
// 12. Close the applications/browsers you opened, to finish he automation ScoreCardScreen.Dispose();
To follow the steps and try out the tutorial yourself, see the following sample project: Using imported library projects in coded automations. The file contains the library project, as well.