v1.50 • Kasus Penggunaan • Referensi API • Tentang & Kredit • Coba di Cloud • Video PyCon • Obrolan Telegram •中文• हिन्दी • Español • Français • عربى • বাংলা • Русский • Português • Bahasa • Deutsch • Lagi..
Untuk menginstal paket Python ini untuk RPA (otomatisasi proses robot) -
pip install rpa
Untuk menggunakannya di notebook Jupyter, skrip Python, atau shell interaktif -
import rpa as r
Catatan tentang sistem operasi dan mode otomatisasi visual opsional -
RPA untuk API Python yang sederhana dan kuat membuat otomatisasi proses robot menjadi menyenangkan! Anda dapat menggunakannya untuk dengan cepat mengotomatiskan tugas-tugas berulang yang memakan waktu di situs web, aplikasi desktop, atau baris perintah.
Sebagai bentuk apresiasi saya, setiap bug baru yang dilaporkan akan dihargai dengan kartu hadiah senilai US$200 dari pedagang pilihan Anda. Setiap saran fitur yang diterima akan dihargai dengan kartu hadiah US$100.
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 ()
pertama, cari @rpapybot di aplikasi Telegram Anda untuk menyetujui penerimaan pesan
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' )
berbagi file dengan aman hingga 100 MB di PrivateBin, yang akan hancur sendiri setelah 1 minggu
bin_url = r . bin ( 'secret_agent_report.pdf' , 'optional password' )
r . telegram ( 1234567890 , 'Access confidential report at ' + bin_url )
Catatan • Pengidentifikasi Elemen • Fungsi Inti • Fungsi Dasar • Fungsi Pro • Fungsi Pembantu
Lihat contoh skrip Python, solusi Tantangan RPA, dan contoh bahan makanan RedMart. Untuk mengirim notifikasi aplikasi Telegram, cukup cari @rpapybot untuk mengizinkan penerimaan pesan. Untuk mengotomatiskan browser Chrome tanpa terlihat, gunakan mode tanpa kepala. Untuk berlari 10X lebih cepat dibandingkan kecepatan normal manusia, gunakan mode turbo (baca peringatannya!). Beberapa CAPTCHA dapat diselesaikan menggunakan layanan seperti 2Captcha, Capsolver, atau langsung dengan mereplikasi tindakan pengguna.
Bagikan file hingga 100 MB secara aman dengan penyimpanan online sementara bawaan, di server PrivateBin khusus. Anda bahkan dapat menjalankan RPA di browser ponsel Anda menggunakan notebook Colab ini (misalnya pengikisan data hingga 5 sesi Colab). Secara desain, paket ini memiliki keamanan perusahaan dan Anda dapat menginstal, memperbarui, dan menggunakannya tanpa internet.
Kontrol penuh penanganan kesalahan dengan mengatur error(True) untuk memunculkan pengecualian Python pada kesalahan, dan mengelola dengan coba-kecuali. Untuk kontrol lebih detail pada lokasi pengunduhan file browser web, gunakan download_location(). Untuk mengganti lokasi folder default untuk menginstal dan memanggil TagUI (versi bercabang yang dioptimalkan untuk paket rpa), gunakan tagui_location().
Jika Anda menggunakan sistem operasi non-Inggris dan mendapatkan kesalahan "byte kelanjutan tidak valid", Anda dapat mengatur halaman kode untuk mendukung UTF-8 atau mengubah pengkodean skrip Python Anda ke pengkodean OS Anda. Lihat contoh ini untuk bahasa Mandarin. Gunakan focus() untuk membuat jendela aplikasi Windows/Mac menjadi fokus (lihat di sini untuk alternatif pywin32).
Beberapa pengguna mungkin merasa tertarik atau berguna untuk menggunakan AI dan pembelajaran mesin (khususnya model bahasa besar LLM), untuk membantu menghasilkan skrip templat, lalu mereka melakukan penyesuaian yang sesuai. Lihat masalah ini pada beberapa pertanyaan yang saya ajukan pada Claude 3.5 Soneta Anthropic dan tanggapannya.
Pengidentifikasi elemen membantu memberi tahu RPA untuk Python elemen mana pada antarmuka pengguna yang ingin Anda gunakan untuk berinteraksi. Misalnya, //*[@id='email'] adalah XPath yang menunjuk ke elemen halaman web yang memiliki atribut id 'email'.
Untuk otomatisasi web, pengidentifikasi elemen web dapat berupa pemilih XPath, pemilih CSS, atau atribut berikut - id, nama, kelas, judul, label aria, teks(), href, dalam urutan prioritas yang menurun. Rekomendasikan menulis XPath secara manual atau cukup menggunakan atribut. Ada penantian otomatis hingga elemen muncul sebelum batas waktu habis, dan kesalahan dikembalikan karena elemen tidak dapat ditemukan. Untuk mengubah batas waktu default 10 detik, gunakan batas waktu(). PS - jika Anda menggunakan ekstensi Chrome untuk membaca XPaths, gunakan SelectorsHub.
? Pengidentifikasi elemen juga dapat berupa snapshot gambar .png atau .bmp yang mewakili elemen UI (bisa pada aplikasi desktop, jendela terminal, atau browser web). Jika file gambar yang ditentukan tidak ada, OCR akan digunakan untuk mencari teks tersebut di layar untuk bertindak pada elemen UI yang berisi teks tersebut, misalnya r.click('Kirim Formulir.png'). Transparansi (opacity 0%) didukung dalam gambar .png. x, y koordinat elemen di layar juga dapat digunakan. Catatan untuk mengotomatiskan 2 monitor secara visual, dan masalah tampilan macOS Retina.
? Contoh pengidentifikasi gambar selanjutnya adalah gambar png dari sebuah jendela (penampil PDF, MS Word, kotak teks, dll) dengan konten tengah gambar disetel sebagai transparan. Hal ini memungkinkan penggunaan read() dan snap() untuk melakukan OCR dan menyimpan snapshot jendela aplikasi, container, frame, kotak teks dengan konten yang bervariasi. Lihat contoh gambar bingkai PDF dengan konten yang dihapus agar transparan. Untuk pasangan koordinat read() dan snap(), x1, y1, x2, y2 dapat digunakan untuk menentukan wilayah yang diinginkan pada layar untuk melakukan OCR atau mengambil snapshot.
Fungsi | Parameter | Tujuan |
---|---|---|
init() | visual_automation=False , chrome_browser=True | mulai TagUI, pengaturan otomatis saat pertama kali dijalankan |
close() | tutup TagUI, browser Chrome, SikuliX | |
pack() | untuk menyebarkan paket tanpa internet | |
update() | untuk memperbarui paket tanpa internet | |
error() | True atau False | setel ke True untuk memunculkan pengecualian pada kesalahan |
debug() | True atau False atau text_to_log | cetak & catat info debug ke rpa_python.log |
secara default RPA untuk Python berjalan pada kecepatan manusia normal, untuk menjalankan 10X lebih cepat gunakan init(turbo_mode = True)
Fungsi | Parameter | Tujuan |
---|---|---|
url() | webpage_url (tidak ada parameter untuk mengembalikan URL saat ini) | buka URL web |
click() | element_identifier (atau x, y menggunakan otomatisasi visual) | klik kiri pada elemen |
rclick() | element_identifier (atau x, y menggunakan otomatisasi visual) | klik kanan pada elemen |
dclick() | element_identifier (atau x, y menggunakan otomatisasi visual) | klik dua kali pada elemen |
hover() | element_identifier (atau x, y menggunakan otomatisasi visual) | gerakkan mouse ke elemen |
type() | element_identifier (atau x, y), text ( '[enter]' / '[clear]' ) | masukkan teks di elemen |
select() | element_identifier (atau x, y), value or text (atau x, y) | pilih opsi tarik-turun |
read() | element_identifier ( 'page' adalah halaman web) (atau x1, y1, x2, y2) | mengembalikan teks elemen |
snap() | element_identifier ( 'page' adalah halaman web), filename_to_save | simpan tangkapan layar ke file |
load() | filename_to_load | mengembalikan konten file |
dump() | text_to_dump , filename_to_save | menyimpan teks ke file |
write() | text_to_write , filename_to_save | menambahkan teks ke file |
ask() | text_to_prompt | tanyakan & kembalikan input pengguna |
untuk menunggu elemen muncul hingga nilai timeout(), gunakan hover(). untuk drag-and-drop, lakukan dengan cara ini
Fungsi | Parameter | Tujuan |
---|---|---|
telegram() | telegram_id , text_to_send (pertama cari @rpapybot) | kirim pesan Telegram |
keyboard() | keys_and_modifiers (menggunakan otomatisasi visual) | mengirim penekanan tombol ke layar |
mouse() | 'down' atau 'up' (menggunakan otomatisasi visual) | kirim acara mouse ke layar |
focus() | app_to_focus (nama lengkap aplikasi) | membuat aplikasi dalam fokus |
wait() | delay_in_seconds (default 5 detik) | secara eksplisit menunggu beberapa saat |
table() | table number atau XPath , filename_to_save | simpan tabel halaman web ke CSV |
bin() | file_to_bin , password (opsional tetapi disarankan) | penyimpanan sementara yang aman |
upload() | element_identifier (CSS), filename_to_upload | unggah file ke elemen web |
download() | download_url , filename_to_save (opsional) | unduh dari URL ke file |
unzip() | file_to_unzip , unzip_location (opsional) | unzip file zip ke lokasi yang ditentukan |
frame() | main_frame id or name , sub_frame (opsional) | atur bingkai web, bingkai() untuk mengatur ulang |
popup() | string_in_url (tidak ada parameter untuk direset ke halaman utama, terutama penting ketika digunakan untuk mengontrol tab browser lain) | atur konteks ke tab popup web |
run() | command_to_run (gunakan ; antar perintah) | jalankan perintah OS & kembalikan output |
dom() | statement_to_run (kode JS untuk dijalankan di browser) | jalankan kode di DOM & kembalikan output |
vision() | command_to_run (kode Python untuk SikuliX) | jalankan perintah SikuliX khusus |
timeout() | timeout_in_seconds (kosong mengembalikan batas waktu saat ini) | ubah batas waktu tunggu (default 10 detik) |
pengubah keyboard() dan tombol khusus -
[shift] [ctrl] [alt] [win] [cmd] [hapus] [spasi] [enter] [backspace] [tab] [esc] [atas] [bawah] [kiri] [kanan] [pageup] [pagedown ] [hapus] [beranda] [akhir] [masukkan] [f1] .. [f15] [layar cetak] [scrolllock] [jeda] [capslock] [numlock]
Fungsi | Parameter | Tujuan |
---|---|---|
exist() | element_identifier | Benar atau Salah jika elemen muncul sebelum batas waktu habis |
present() | element_identifier | kembalikan Benar atau Salah jika elemen ada sekarang |
count() | element_identifier | mengembalikan jumlah elemen web sebagai bilangan bulat |
clipboard() | text_to_put atau tanpa parameter | letakkan teks atau kembalikan teks clipboard sebagai string |
get_text() | source_text , left , right , count=1 | mengembalikan teks antara penanda kiri & kanan |
del_chars() | source_text , characters | mengembalikan teks setelah menghapus karakter yang diberikan |
mouse_xy() | kembalikan koordinat mouse '(x,y)' sebagai string | |
mouse_x() | kembalikan koordinat x mouse sebagai bilangan bulat | |
mouse_y() | kembalikan koordinat y mouse sebagai bilangan bulat | |
title() | mengembalikan judul halaman dari halaman web saat ini sebagai string | |
text() | mengembalikan konten teks halaman web saat ini sebagai string | |
timer() | waktu pengembalian yang berlalu dalam detik antara panggilan sebagai float |
untuk mengetik teks dalam jumlah besar dengan cepat, gunakan clipboard() dan keyboard() untuk menempelkannya, bukan mengetik()
TagUI adalah perangkat lunak RPA sumber terbuka terkemuka? dengan puluhan ribu pengguna. Itu dibuat pada tahun 2016-2017 ketika saya meninggalkan DBS Bank sebagai insinyur otomasi pengujian, untuk cuti satu tahun ke Eropa Timur. Sebagian besar basis kodenya ditulis di Novi Sad Serbia. Pada tahun 2018, saya bergabung dengan AI Singapura untuk melanjutkan pengembangan TagUI.
Selama beberapa bulan di tahun 2019, saya mengambil peran sebagai ayah penuh waktu, merawat bayi perempuan dan istri saya yang baru lahir ??. Di sela-sela pengasuhan anak, saya menggunakan kantong waktu saya untuk membuat paket Python yang dibangun di atas TagUI. Saya berharap pip install rpa
akan membuat hidup lebih mudah bagi pengguna Python dari berbagai lapisan masyarakat.
Saya telah memelihara paket tersebut (dan versi TagUI bercabang yang dioptimalkan untuk itu) di waktu pribadi saya. Namun kini, Marcelo Cecin, Luis Alejandro, Jozsef Fulop, Tolani Jaiye-Tikolo, Shyan Chua, Laurence Liew, Bala Ranganathan, saya sendiri adalah tim baru yang mempertahankan paket ini. Kami senang puluhan ribu orang menggunakannya?
Untuk info teknis, lihat arsitektur intuitifnya di bawah dan banyak komentar dalam paket file tunggal ini.
Saya ingin mengucapkan terima kasih dan menyampaikan apresiasi saya kepada kontributor sumber terbuka yang luar biasa di bawah ini ❤️
RPA untuk Python adalah perangkat lunak sumber terbuka yang dirilis di bawah lisensi Apache 2.0
Mindly
Saya jarang membuat rekomendasi produk, selain perangkat lunak OpenRPA yang luar biasa, dan alat RPA sumber terbuka yang saya kerjakan secara pribadi. Saya ingin merekomendasikan aplikasi pemetaan pikiran Mindly yang tersedia di ponsel dan macOS.
Peta pikiran adalah cara intuitif untuk menyimpan, mengatur, dan mengambil informasi, karena peta ini meniru cara kerja pikiran - hubungan antara berbagai konsep dan ingatan. Sempurna untuk memanfaatkan kantong waktu secara produktif saat bepergian.
Gambar di bawah ini adalah contoh Mindly tentang manfaat kopi. Saya pribadi menggunakannya untuk memetakan kehidupan saya selama 13 tahun ke depan, merefleksikan bagaimana menjadi suami yang lebih baik, menyimpan daftar makanan tradisional Inggris, menyimpan barcode anggota supermarket, serta membuat catatan saat bepergian. Bahkan ada peta pikiran untuk dimainkan oleh putri saya yang berusia 3 tahun, dia hanya menikmati menyeret simpul ke tempat sampah. Jadi saya membuat peta pikiran tiruan dalam keadaan siaga yang bisa dia hancurkan.
Yang terbaik dari semuanya, versi gratisnya harus memenuhi kebutuhan sebagian besar pengguna. Saya belum melampaui batas gratis 100 node per mindmap, namun saya membelinya cukup awal setelah menggunakannya, untuk mendukung kerja tim di balik aplikasi ini.
PS - Saya tidak tahu tim Mindly, hanya merekomendasikan aplikasinya di sini karena bagus