v1.50 • Anwendungsfälle • API-Referenz • Über & Credits • Testen Sie die Cloud • PyCon-Video • Telegram-Chat •中文• हिन्दी • Español • Français • عربى • বাংলা • Русский • Português • Bahasa • Deutsch • Mehr..
Um dieses Python-Paket für RPA (Robotic Process Automation) zu installieren:
pip install rpa
Um es im Jupyter-Notebook, im Python-Skript oder in der interaktiven Shell zu verwenden:
import rpa as r
Hinweise zu Betriebssystemen und optionalem visuellen Automatisierungsmodus -
Mit der einfachen und leistungsstarken API von RPA für Python macht die Automatisierung von Roboterprozessen Spaß! Sie können damit wiederkehrende zeitaufwändige Aufgaben auf Websites, in Desktop-Anwendungen oder in der Befehlszeile schnell automatisieren.
Als Zeichen meiner Wertschätzung erhalten Sie für jeden gemeldeten neuen Fehler eine Geschenkkarte im Wert von 200 US-Dollar von Ihrem bevorzugten Händler. Jeder angenommene Funktionsvorschlag wird mit einer Geschenkkarte im Wert von 100 US-Dollar belohnt.
r . init ()
r . url ( 'https://duckduckgo.com' )
r . type ( '//*[@name="q"]' , 'decentralisation[enter]' )
r . wait () # ensure results are fully loaded
r . snap ( 'page' , 'results.png' )
r . close ()
r . init ( visual_automation = True )
r . dclick ( 'outlook_icon.png' )
r . click ( 'new_mail.png' )
...
r . type ( 'message_box.png' , 'Hi Gillian,[enter]This is ...' )
r . click ( 'send_button.png' )
r . close ()
r . init ( visual_automation = True , chrome_browser = False )
print ( r . read ( 'pdf_report_window.png' ))
print ( r . read ( 'image_preview.png' ))
r . hover ( 'anchor_element.png' )
print ( r . read ( r . mouse_x (), r . mouse_y (), r . mouse_x () + 400 , r . mouse_y () + 200 ))
r . close ()
r . init ( visual_automation = True , chrome_browser = False )
r . keyboard ( '[cmd][space]' )
r . keyboard ( 'safari[enter]' )
r . keyboard ( '[cmd]t' )
r . keyboard ( 'snatcher[enter]' )
r . wait ( 2.5 )
r . snap ( 'page.png' , 'results.png' )
r . close ()
r . init ( visual_automation = True )
r . type ( 600 , 300 , 'neo kobe city' )
r . click ( 900 , 300 )
r . snap ( 'page.png' , 'results.png' )
r . hover ( 'button_to_drag.png' )
r . mouse ( 'down' )
r . hover ( r . mouse_x () + 300 , r . mouse_y ())
r . mouse ( 'up' )
r . close ()
Suchen Sie zunächst in Ihrer Telegram-App nach @rpapybot, um den Empfang von Nachrichten zu genehmigen
r . telegram ( '1234567890' , 'ID can be string or number, r.init() is not required' )
r . telegram ( 1234567890 , 'Hello World. Olá Mundo. नमस्ते दुनिया. 안녕하세요 세계. 世界,你好。' )
r . telegram ( 1234567890 , 'Use backslash n for new line n This is line 2 of the message' )
Geben Sie Dateien bis zu 100 MB sicher auf PrivateBin frei, das sich nach einer Woche selbst zerstört
bin_url = r . bin ( 'secret_agent_report.pdf' , 'optional password' )
r . telegram ( 1234567890 , 'Access confidential report at ' + bin_url )
Hinweise • Elementbezeichner • Kernfunktionen • Grundfunktionen • Pro-Funktionen • Hilfsfunktionen
Sehen Sie sich das Beispiel-Python-Skript, die RPA-Challenge-Lösung und das Beispiel für RedMart-Lebensmittel an. Um eine Telegram-App-Benachrichtigung zu senden, suchen Sie einfach nach @rpapybot, um den Empfang von Nachrichten zuzulassen. Um den Chrome-Browser unsichtbar zu automatisieren, verwenden Sie den Headless-Modus. Um 10-mal schneller statt mit normaler menschlicher Geschwindigkeit zu laufen, verwenden Sie den Turbomodus (lesen Sie die Einschränkungen!). Einige CAPTCHAs können mithilfe von Diensten wie 2Captcha, Capsolver oder direkt durch Replizieren von Benutzeraktionen gelöst werden.
Teilen Sie Dateien bis zu 100 MB sicher mit dem integrierten temporären Online-Speicher auf einem dedizierten PrivateBin-Server. Mit diesem Colab-Notebook können Sie sogar RPA auf Ihrem Telefonbrowser ausführen (z. B. Datascraping mit bis zu 5 Colab-Sitzungen). Dieses Paket verfügt von Natur aus über Unternehmenssicherheit und Sie können es ohne Internet installieren, aktualisieren und verwenden.
Kontrollieren Sie die Fehlerbehandlung vollständig, indem Sie error(True) festlegen, um bei einem Fehler eine Python-Ausnahme auszulösen, und verwalten Sie sie mit try-exclusive. Verwenden Sie download_location(), um den Datei-Download-Speicherort des Webbrowsers genau zu steuern. Verwenden Sie tagui_location(), um den Standardordnerspeicherort zum Installieren und Aufrufen von TagUI (einer für das RPA-Paket optimierten gespaltenen Version) zu überschreiben.
Wenn Sie ein nicht-englisches Betriebssystem verwenden und die Fehlermeldung „Ungültiges Fortsetzungsbyte“ erhalten, können Sie die Codeseite so einstellen, dass sie UTF-8 unterstützt, oder die Codierung Ihres Python-Skripts auf die Codierung Ihres Betriebssystems ändern. Sehen Sie sich dieses Beispiel für Chinesisch an. Verwenden Sie focus(), um Windows-/Mac-Anwendungsfenster in den Fokus zu rücken (siehe hier für die Alternative zu pywin32).
Einige Benutzer finden es möglicherweise interessant oder nützlich, KI und maschinelles Lernen (insbesondere große LLM-Sprachmodelle) zu verwenden, um ein Vorlagenskript zu erstellen, und nehmen dann die Feinabstimmung entsprechend vor. In dieser Ausgabe finden Sie einige Fragen, die ich dem Sonett Claude 3.5 von Anthropic gestellt habe, und die dazugehörigen Antworten.
Mithilfe einer Elementkennung können Sie RPA für Python genau mitteilen, mit welchem Element auf der Benutzeroberfläche Sie interagieren möchten. Beispielsweise ist //*[@id='email'] ein XPath, der auf das Webseitenelement mit dem ID-Attribut „email“ verweist.
Für die Webautomatisierung kann der Webelementbezeichner ein XPath-Selektor, ein CSS-Selektor oder die folgenden Attribute sein: id, name, class, title, aria-label, text(), href, in absteigender Reihenfolge der Priorität. Empfehlen Sie, XPath manuell zu schreiben oder einfach Attribute zu verwenden. Es wird automatisch auf das Erscheinen eines Elements gewartet, bevor eine Zeitüberschreitung auftritt, und es wird die Fehlermeldung zurückgegeben, dass das Element nicht gefunden werden kann. Um das Standard-Timeout von 10 Sekunden zu ändern, verwenden Sie timeout(). PS: Wenn Sie eine Chrome-Erweiterung zum Lesen von XPaths verwenden, verwenden Sie SelectorsHub.
? Ein Elementbezeichner kann auch ein .png- oder .bmp-Bildschnappschuss sein, der das UI-Element darstellt (kann in Desktop-Anwendungen, Terminalfenstern oder Webbrowsern verwendet werden). Wenn die angegebene Bilddatei nicht vorhanden ist, wird OCR verwendet, um nach diesem Text auf dem Bildschirm zu suchen, um auf das UI-Element zu reagieren, das den Text enthält, z. B. r.click('Submit Form.png'). Transparenz (0 % Deckkraft) wird in PNG-Bildern unterstützt. X- und Y-Koordinaten von Elementen auf dem Bildschirm können ebenfalls verwendet werden. Hinweise zur visuellen Automatisierung von 2 Monitoren und Problemen mit der macOS Retina-Anzeige.
? Ein weiteres Beispiel für eine Bildkennung ist ein PNG-Bild eines Fensters (PDF-Viewer, MS Word, Textfeld usw.), wobei der mittlere Inhalt des Bildes als transparent festgelegt ist. Dies ermöglicht die Verwendung von read() und snap() zur Durchführung von OCR und zum Speichern von Snapshots von Anwendungsfenstern, Containern, Frames und Textfeldern mit unterschiedlichem Inhalt. Sehen Sie sich dieses Bildbeispiel eines PDF-Rahmens an, dessen Inhalt entfernt wurde, um ihn transparent zu machen. Für read() und snap() kann das Koordinatenpaar x1, y1, x2, y2 verwendet werden, um den interessierenden Bereich auf dem Bildschirm zu definieren, um OCR durchzuführen oder einen Schnappschuss zu erfassen.
Funktion | Parameter | Zweck |
---|---|---|
init() | visual_automation=False , chrome_browser=True | TagUI starten, automatische Einrichtung beim ersten Start |
close() | Schließen Sie TagUI, Chrome-Browser, SikuliX | |
pack() | für die Bereitstellung von Paketen ohne Internet | |
update() | zum Aktualisieren des Pakets ohne Internet | |
error() | True oder False | auf True setzen, um bei einem Fehler eine Ausnahme auszulösen |
debug() | True oder False oder text_to_log | Debug-Informationen drucken und in rpa_python.log protokollieren |
Standardmäßig läuft RPA für Python mit normaler menschlicher Geschwindigkeit. Um 10-mal schneller zu laufen, verwenden Sie init(turbo_mode = True).
Funktion | Parameter | Zweck |
---|---|---|
url() | webpage_url (kein Parameter zur Rückgabe der aktuellen URL) | Gehen Sie zur Web-URL |
click() | element_identifier (oder x, y mit visueller Automatisierung) | Klicken Sie mit der linken Maustaste auf das Element |
rclick() | element_identifier (oder x, y mit visueller Automatisierung) | Klicken Sie mit der rechten Maustaste auf das Element |
dclick() | element_identifier (oder x, y mit visueller Automatisierung) | Doppelklicken Sie auf das Element |
hover() | element_identifier (oder x, y mit visueller Automatisierung) | Bewegen Sie die Maus zum Element |
type() | element_identifier (oder x, y), text ( '[enter]' / '[clear]' ) | Geben Sie Text im Element ein |
select() | element_identifier (oder x, y), value or text (oder x, y) | Wählen Sie die Dropdown-Option |
read() | element_identifier ( 'page' ist eine Webseite) (oder x1, y1, x2, y2) | Elementtext zurückgeben |
snap() | element_identifier ( 'page' ist Webseite), filename_to_save | Screenshot in Datei speichern |
load() | filename_to_load | Dateiinhalt zurückgeben |
dump() | text_to_dump , filename_to_save | Text in Datei speichern |
write() | text_to_write , filename_to_save | Text an Datei anhängen |
ask() | text_to_prompt | Benutzereingaben abfragen und zurückgeben |
Um auf das Erscheinen eines Elements bis zum Timeout()-Wert zu warten, verwenden Sie hover(). Zum Ziehen und Ablegen gehen Sie folgendermaßen vor
Funktion | Parameter | Zweck |
---|---|---|
telegram() | telegram_id , text_to_send (suchen Sie zuerst nach @rpapybot) | Telegram-Nachricht senden |
keyboard() | keys_and_modifiers (unter Verwendung visueller Automatisierung) | Tastenanschläge an den Bildschirm senden |
mouse() | 'down' oder 'up' (mittels visueller Automatisierung) | Mausereignis an den Bildschirm senden |
focus() | app_to_focus (vollständiger Name der App) | Stellen Sie die Anwendung in den Fokus |
wait() | delay_in_seconds (Standard 5 Sekunden) | Warten Sie explizit einige Zeit |
table() | table number oder XPath , filename_to_save | Speichern Sie die Webseitentabelle im CSV-Format |
bin() | file_to_bin , password (optional, aber empfohlen) | sichere Zwischenspeicherung |
upload() | element_identifier (CSS), filename_to_upload | Laden Sie die Datei in das Webelement hoch |
download() | download_url , filename_to_save (optional) | Von URL in Datei herunterladen |
unzip() | file_to_unzip , unzip_location (optional) | Entpacken Sie die ZIP-Datei an den angegebenen Speicherort |
frame() | main_frame id or name , sub_frame (optional) | Web-Frame setzen, Frame() zurücksetzen |
popup() | string_in_url (kein Parameter zum Zurücksetzen auf die Hauptseite, besonders wichtig, wenn es zur Steuerung eines anderen Browser-Tabs verwendet wird) | Legen Sie den Kontext auf die Registerkarte „Web-Popup“ fest |
run() | command_to_run (verwende ; zwischen Befehlen) | Führen Sie den Betriebssystembefehl aus und geben Sie die Ausgabe zurück |
dom() | statement_to_run (JS-Code zur Ausführung im Browser) | Code im DOM ausführen und Ausgabe zurückgeben |
vision() | command_to_run (Python-Code für SikuliX) | Führen Sie benutzerdefinierte SikuliX-Befehle aus |
timeout() | timeout_in_seconds (leer gibt aktuelles Timeout zurück) | Wartezeit-Timeout ändern (Standard 10 Sekunden) |
Keyboard()-Modifikatoren und Sondertasten -
[Umschalttaste] [Strg] [Alt] [Win] [cmd] [Löschen] [Leertaste] [Enter] [Rücktaste] [Tab] [Esc] [hoch] [runter] [links] [rechts] [Seite nach oben] [Seite nach unten ] [Löschen] [Startseite] [Ende] [Einfügen] [f1] .. [f15] [Druckbildschirm] [Bildlauftaste] [Pause] [Feststelltaste] [Numtaste]
Funktion | Parameter | Zweck |
---|---|---|
exist() | element_identifier | Wahr oder Falsch, wenn das Element vor dem Timeout angezeigt wird |
present() | element_identifier | Gibt True oder False zurück, wenn das Element jetzt vorhanden ist |
count() | element_identifier | Gibt die Anzahl der Webelemente als Ganzzahl zurück |
clipboard() | text_to_put oder kein Parameter | Text einfügen oder Text aus der Zwischenablage als Zeichenfolge zurückgeben |
get_text() | source_text , left , right , count=1 | Gibt Text zwischen linken und rechten Markierungen zurück |
del_chars() | source_text , characters | Gibt Text zurück, nachdem bestimmte Zeichen gelöscht wurden |
mouse_xy() | Gibt '(x,y)'-Koordinaten der Maus als String zurück | |
mouse_x() | Gibt die X-Koordinate der Maus als Ganzzahl zurück | |
mouse_y() | Gibt die Y-Koordinate der Maus als Ganzzahl zurück | |
title() | Gibt den Seitentitel der aktuellen Webseite als String zurück | |
text() | Gibt den Textinhalt der aktuellen Webseite als String zurück | |
timer() | Rückkehrzeit in Sekunden zwischen Aufrufen als Float |
Um schnell eine große Textmenge einzugeben, verwenden Sie zum Einfügen Clipboard() und Keyboard() anstelle von Type().
TagUI ist eine führende Open-Source-RPA-Software? mit Zehntausenden von Benutzern. Es entstand 2016–2017, als ich die DBS Bank als Testautomatisierungsingenieur für ein einjähriges Sabbatical nach Osteuropa verließ. Der Großteil der Codebasis wurde in Novi Sad, Serbien, geschrieben. Im Jahr 2018 kam ich zu AI Singapore, um die Entwicklung von TagUI fortzusetzen.
Im Laufe einiger Monate im Jahr 2019 habe ich die Rolle eines Vollzeitvaters übernommen und mich um mein neugeborenes Mädchen und meine Frau gekümmert. Zwischen meiner Zeit als Kindermädchen habe ich meine Zeit genutzt, um dieses auf TagUI basierende Python-Paket zu erstellen. Ich hoffe, dass pip install rpa
Python-Benutzern aus verschiedenen Lebensbereichen das Leben erleichtern wird.
Ich habe das Paket (und eine dafür optimierte abgespaltene Version von TagUI) privat gepflegt. Aber jetzt sind Marcelo Cecin, Luis Alejandro, Jozsef Fulop, Tolani Jaiye-Tikolo, Shyan Chua, Laurence Liew, Bala Ranganathan und ich das neue Team, das dieses Paket aufrechterhält. Wir freuen uns, dass Zehntausende Menschen es nutzen?
Technische Informationen finden Sie unten in der intuitiven Architektur und in den ausführlichen Kommentaren zu diesem Einzeldateipaket.
Ich möchte diesen großartigen Open-Source-Mitwirkenden unten meinen Dank aussprechen und ihnen meine Anerkennung aussprechen ❤️
RPA für Python ist eine Open-Source-Software, die unter der Apache 2.0-Lizenz veröffentlicht wird
Mindly
Abgesehen von der großartigen OpenRPA-Software und den Open-Source-RPA-Tools, an denen ich persönlich gearbeitet habe, gebe ich selten Produktempfehlungen. Ich möchte die Mindmapping-App Mindly empfehlen, die auf Telefonen und macOS verfügbar ist.
Eine Mindmap ist eine intuitive Möglichkeit, Informationen zu speichern, zu organisieren und abzurufen, da sie die Funktionsweise des Geistes nachahmt – Beziehungen zwischen verschiedenen Konzepten und Erinnerungen. Es ist perfekt, um unterwegs die Zeitreserven produktiv zu nutzen.
Das folgende Bild ist ein Mindly-Beispiel für die Vorteile von Kaffee. Ich persönlich verwende es, um mein Leben für die nächsten 13 Jahre zu planen, darüber nachzudenken, wie ich ein besserer Ehemann sein kann, eine Liste traditioneller britischer Lebensmittel zu führen, Barcodes für Supermarktmitglieder aufzubewahren und mir unterwegs Notizen zu machen. Es gibt sogar eine Mindmap für meine 3-jährige Tochter zum Spielen, sie genießt es einfach, die Knoten in den Papierkorb zu ziehen. Also habe ich im Standby-Modus eine Dummy-Mindmap erstellt, die sie zerstören kann.
Das Beste ist, dass die kostenlose Version die Bedürfnisse der meisten Benutzer erfüllen sollte. Ich habe das kostenlose Limit von 100 Knoten pro Mindmap nicht überschritten, habe es aber recht früh nach der Nutzung gekauft, um die Arbeit des Teams hinter dieser App zu unterstützen.
PS: Ich kenne das Team von Mindly nicht und empfehle die App hier nur, weil sie großartig ist