studio
2023.10
false
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.
UiPath logo, featuring letters U and I in white

Studio-Benutzerhandbuch

Letzte Aktualisierung 29. Sep. 2025

Verwenden importierter Bibliotheksprojekte in codierten Automatisierungen

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.

Voraussetzungen

  • 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.

1. Erstellen Sie das Bibliotheksprojekt

Erstellen Sie ein Bibliotheksprojekt, um die wesentlichen UI-Elemente für die Automatisierung der Acme-App zu speichern, insbesondere zum Ausfüllen einer Bewertungskarte für einen Studenten. Erstellen Sie außerdem einen Low-Code (.xaml) oder codierten Workflow (.cs) innerhalb des Bibliotheksprojekts, den Sie später in einer anderen codierten Automatisierung verwenden werden.
  1. Erstellen Sie ein Bibliotheksprojekt namens AcmeLibrary.
  2. Erfassen Sie alle UI-Elemente, die Sie im Object-Repository und im Abschnitt Deskriptoren verwenden möchten.
  3. 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.

  4. 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.
  5. 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.

2. Erstellen Sie die codierte Automatisierung

Nachdem Sie das Bibliotheksprojekt erstellt haben, installieren Sie es in einem anderen Projekt, um dessen wiederverwendbare Assets zu nutzen, einschließlich Object Repository-Elementen und Workflows, ob Low-Code (.xaml) oder codiert (.cs).
Tipp: Beachten Sie bei der Verwendung von codierten Automatisierungs-APIs von UI Automation, dass die Overloads IScreenDescriptormit bestimmten Parametern für die Arbeit mit Elementen aus der Objektablage vorgesehen IElementDescriptorsind, während die Overloads mit anderen Parametern für die Verwendung mit nativen Selektoren gedacht TargetAnchorableModelsind, 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.
  1. Erstellen Sie in der Gruppe Datei einen neuen codierten Workflow.
  2. Wechseln Sie zu Pakete verwalten und installieren Sie das zuvor erstellte Bibliotheksprojekt.
  3. Erstellen Sie in der Gruppe Datei einen neuen Workflow.
    1. Nennen Sie den Workflow notifyStudentScoreCardAdded.
    2. Navigieren Sie zum Bereich Aktivitäten zum Abschnitt Installiert.
    3. Suchen Sie nach dem Namen des importierten Bibliotheksprojekts (zum Beispiel AcmeLibrary).
    4. Ziehen Sie die Aktivität Send message box in notifyStudentScoreCardAddedund legen Sie sie dort ab.
      Jetzt hat notifyStudentScoreCardAdded das gleiche Verhalten wie derSend message box-Workflow aus dem importierten Bibliotheksprojekt.
  4. 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;
  5. 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);
  6. 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");
  7. 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'/>"));
  8. Ü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);
  9. 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);
  10. 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);
  11. 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);
  12. 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");
  13. 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");
  14. 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);
  15. 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");
  16. 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();

Beispielprojekt

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.

War diese Seite hilfreich?

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