v1.50 • حالات الاستخدام • مرجع واجهة برمجة التطبيقات • نبذة عن الشركة والاعتمادات • تجربة على السحابة • فيديو PyCon • دردشة Telegram •中文• हिन्дी • Español • Français • عربى • বংল • Русский • البرتغالية • البهاسا • الألمانية • المزيد..
لتثبيت حزمة Python هذه لـ RPA (أتمتة العمليات الروبوتية) -
pip install rpa
لاستخدامه في دفتر Jupyter أو برنامج Python النصي أو Shell التفاعلي -
import rpa as r
ملاحظات حول أنظمة التشغيل ووضع التشغيل الآلي المرئي الاختياري -
تقنية RPA لواجهة برمجة تطبيقات Python البسيطة والقوية تجعل أتمتة العمليات الآلية أمرًا ممتعًا! يمكنك استخدامه لأتمتة المهام المتكررة التي تستغرق وقتًا طويلاً على مواقع الويب أو تطبيقات سطح المكتب أو سطر الأوامر.
وكتعبير عن تقديري، سيتم تقدير أي خطأ جديد يتم الإبلاغ عنه من خلال بطاقة هدايا بقيمة 200 دولار أمريكي من التاجر المفضل لديك. سيتم تقدير أي اقتراح ميزة يتم قبوله من خلال بطاقة هدايا بقيمة 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 ()
أولاً، ابحث عن @rpapybot على تطبيق Telegram للموافقة على تلقي الرسائل
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' )
يمكنك مشاركة ملفات يصل حجمها إلى 100 ميجابايت بشكل آمن على PrivateBin، والتي سيتم تدميرها ذاتيًا بعد أسبوع واحد
bin_url = r . bin ( 'secret_agent_report.pdf' , 'optional password' )
r . telegram ( 1234567890 , 'Access confidential report at ' + bin_url )
ملاحظات • معرفات العناصر • الوظائف الأساسية • الوظائف الأساسية • وظائف برو • وظائف المساعد
راجع نموذج برنامج Python النصي وحل تحدي RPA ومثال بقالة RedMart. لإرسال إشعار لتطبيق Telegram، ما عليك سوى البحث عن @rpapybot للسماح بتلقي الرسائل. لأتمتة متصفح Chrome بشكل غير مرئي، استخدم وضع مقطوعة الرأس. لتشغيل أسرع بمقدار 10 مرات بدلاً من السرعة البشرية العادية، استخدم وضع التربو (اقرأ التحذيرات!). يمكن حل بعض اختبارات CAPTCHA باستخدام خدمات مثل 2Captcha أو Capsolver أو مباشرة عن طريق تكرار إجراءات المستخدم.
يمكنك مشاركة ملفات يصل حجمها إلى 100 ميجابايت بشكل آمن من خلال مساحة تخزين مؤقتة مدمجة عبر الإنترنت، على خادم PrivateBin مخصص. يمكنك أيضًا تشغيل تقنية RPA على متصفح هاتفك باستخدام دفتر Colab هذا (على سبيل المثال، استخراج البيانات بما يصل إلى 5 جلسات Colab). حسب التصميم، تتمتع هذه الحزمة بأمان مؤسسي ويمكنك تثبيتها وتحديثها واستخدامها بدون الإنترنت.
تحكم بشكل كامل في معالجة الأخطاء عن طريق تعيين خطأ (صحيح) لرفع استثناء بايثون عند الخطأ، وإدارته باستخدام المحاولة باستثناء. للتحكم الدقيق في موقع تنزيل ملف متصفح الويب، استخدم download_location(). لتجاوز موقع المجلد الافتراضي لتثبيت TagUI واستدعاءه (إصدار متشعب محسّن لحزمة RPA)، استخدم tagui_location().
إذا كنت تستخدم نظام تشغيل غير إنجليزي وحصلت على خطأ "بايت متابعة غير صالح"، فيمكنك تعيين صفحة الرموز لدعم UTF-8 أو تغيير ترميز برنامج Python النصي إلى ترميز نظام التشغيل لديك. انظر هذا المثال للصينية. استخدم focus() لجعل نوافذ تطبيقات Windows/Mac موضع التركيز (انظر هنا للحصول على بديل pywin32).
قد يجد بعض المستخدمين أنه من المثير للاهتمام أو المفيد استخدام الذكاء الاصطناعي والتعلم الآلي (خاصة نماذج اللغات الكبيرة LLM)، للمساعدة في إنشاء نص قالب، ثم يقومون بالضبط الدقيق وفقًا لذلك. راجع هذه المشكلة حول بعض الأسئلة التي طرحتها على Anthropic's Claude 3.5 Sonnet وإجاباتها.
يساعد معرف العنصر في إخبار RPA لـ Python بالعنصر المحدد في واجهة المستخدم الذي تريد التفاعل معه. على سبيل المثال، //*[@id='email'] هو مسار XPath يشير إلى عنصر صفحة الويب الذي يحتوي على سمة المعرف 'email'.
بالنسبة لأتمتة الويب، يمكن أن يكون معرف عنصر الويب عبارة عن محدد XPath أو محدد CSS أو السمات التالية - المعرف أو الاسم أو الفئة أو العنوان أو aria-label أو text() أو href بترتيب تنازلي للأولوية. نوصي بكتابة XPath يدويًا أو ببساطة باستخدام السمات. هناك انتظار تلقائي لظهور العنصر قبل انتهاء المهلة، ويتم إرجاع خطأ مفاده أنه لا يمكن العثور على العنصر. لتغيير المهلة الافتراضية البالغة 10 ثوانٍ، استخدم timeout(). ملاحظة: إذا كنت تستخدم ملحق Chrome لقراءة XPaths، فاستخدم SelectorsHub.
؟ يمكن أن يكون معرف العنصر أيضًا لقطة صورة بتنسيق .png أو .bmp تمثل عنصر واجهة المستخدم (يمكن أن يكون على تطبيقات سطح المكتب أو النافذة الطرفية أو متصفح الويب). إذا كان ملف الصورة المحدد غير موجود، فسيتم استخدام التعرف الضوئي على الحروف للبحث عن هذا النص على الشاشة للعمل على عنصر واجهة المستخدم الذي يحتوي على النص، على سبيل المثال r.click('Submit Form.png'). الشفافية (0% عتامة) مدعومة في الصور بتنسيق png. يمكن أيضًا استخدام إحداثيات x وy للعناصر الموجودة على الشاشة. ملاحظات حول التشغيل الآلي لشاشتين بشكل مرئي، ومشكلة عرض macOS Retina.
؟ مثال آخر لمعرف الصورة هو صورة png لنافذة (عارض PDF، MS Word، مربع نص، إلخ) مع تعيين المحتوى المركزي للصورة على أنه شفاف. يتيح ذلك استخدام read() و snap() لإجراء التعرف الضوئي على الحروف وحفظ لقطات من نوافذ التطبيق والحاويات والإطارات ومربعات النص ذات المحتوى المتنوع. راجع مثال الصورة هذا لإطار PDF مع إزالة المحتوى ليصبح شفافًا. بالنسبة إلى read() و snap()، يمكن استخدام زوج الإحداثيات x1 وy1 وx2 وy2 لتحديد المنطقة محل الاهتمام على الشاشة لإجراء التعرف الضوئي على الحروف أو التقاط لقطة.
وظيفة | حدود | غاية |
---|---|---|
init() | visual_automation=False ، chrome_browser=True | بدء تشغيل TagUI، والإعداد التلقائي عند التشغيل لأول مرة |
close() | أغلق TagUI، متصفح Chrome، SikuliX | |
pack() | لنشر الحزمة دون الإنترنت | |
update() | لتحديث الحزمة دون الإنترنت | |
error() | True أو False | تم ضبطه على True لرفع الاستثناء عند حدوث خطأ |
debug() | True أو False أو text_to_log | طباعة وتسجيل معلومات التصحيح إلى rpa_python.log |
افتراضيًا، يعمل RPA لـ Python بالسرعة البشرية العادية، لتشغيل أسرع بمقدار 10 مرات، استخدم init(turbo_mode = True)
وظيفة | حدود | غاية |
---|---|---|
url() | webpage_url (لا توجد معلمة لإرجاع عنوان URL الحالي) | انتقل إلى عنوان URL على الويب |
click() | element_identifier (أو x، y باستخدام الأتمتة المرئية) | انقر بزر الماوس الأيسر على العنصر |
rclick() | element_identifier (أو x، y باستخدام الأتمتة المرئية) | انقر بزر الماوس الأيمن على العنصر |
dclick() | element_identifier (أو x، y باستخدام الأتمتة المرئية) | انقر نقرًا مزدوجًا فوق العنصر |
hover() | element_identifier (أو x، y باستخدام الأتمتة المرئية) | حرك الماوس إلى العنصر |
type() | element_identifier (أو x، y)، text ( '[enter]' / '[clear]' ) | أدخل النص في العنصر |
select() | element_identifier (أو x، y)، value or text (أو x، y) | اختر خيار القائمة المنسدلة |
read() | element_identifier ( 'page' هي صفحة ويب) (أو x1، y1، x2، y2) | إرجاع نص العنصر |
snap() | element_identifier ( 'page' هي صفحة ويب)، filename_to_save | حفظ لقطة الشاشة إلى ملف |
load() | filename_to_load | إرجاع محتوى الملف |
dump() | text_to_dump ، filename_to_save | حفظ النص إلى ملف |
write() | text_to_write ، filename_to_save | إلحاق النص بالملف |
ask() | text_to_prompt | اسأل وأرجع مدخلات المستخدم |
لانتظار ظهور عنصر حتى قيمة timeout()، استخدم hover(). للسحب والإفلات، قم بذلك بهذه الطريقة
وظيفة | حدود | غاية |
---|---|---|
telegram() | telegram_id ، text_to_send (البحث الأول عن @rpapybot) | إرسال رسالة برقية |
keyboard() | keys_and_modifiers (باستخدام الأتمتة المرئية) | إرسال ضغطات المفاتيح إلى الشاشة |
mouse() | 'down' أو 'up' (باستخدام الأتمتة المرئية) | إرسال حدث الماوس إلى الشاشة |
focus() | app_to_focus (الاسم الكامل للتطبيق) | جعل التطبيق في التركيز |
wait() | delay_in_seconds (الافتراضي 5 ثواني) | انتظر صراحة لبعض الوقت |
table() | table number أو XPath ، filename_to_save | حفظ جدول صفحة الويب إلى CSV |
bin() | file_to_bin ، password (اختيارية ولكن يوصى بها) | تخزين مؤقت آمن |
upload() | element_identifier (CSS)، filename_to_upload | تحميل الملف إلى عنصر الويب |
download() | download_url ، filename_to_save (اختياري) | التنزيل من URL إلى الملف |
unzip() | file_to_unzip ، unzip_location (اختياري) | فك ضغط الملف المضغوط إلى الموقع المحدد |
frame() | main_frame id or name ، sub_frame (اختياري) | ضبط إطار الويب، الإطار () لإعادة التعيين |
popup() | string_in_url (لا توجد معلمة لإعادة تعيينها إلى الصفحة الرئيسية، وهي مهمة بشكل خاص عند استخدامها للتحكم في علامة تبويب متصفح أخرى) | اضبط السياق على علامة التبويب المنبثقة على الويب |
run() | command_to_run (استخدام ؛ بين الأوامر) | تشغيل أمر نظام التشغيل وإرجاع الإخراج |
dom() | statement_to_run (رمز JS للتشغيل في المتصفح) | تشغيل التعليمات البرمجية في DOM وإرجاع الإخراج |
vision() | command_to_run (رمز بايثون لـ SikuliX) | تشغيل أوامر SikuliX المخصصة |
timeout() | timeout_in_seconds (يرجع الفراغ المهلة الحالية) | تغيير مهلة الانتظار (10 ثوانٍ افتراضية) |
معدّلات لوحة المفاتيح () والمفاتيح الخاصة -
[shift] [ctrl] [alt] [win] [cmd] [مسح] [مسافة] [أدخل] [مسافة للخلف] [tab] [esc] [up] [أسفل] [يسار] [يمين] [pageup] [pagedown] ] [حذف] [الصفحة الرئيسية] [نهاية] [إدراج] [f1] .. [f15] [شاشة الطباعة] [قفل التمرير] [إيقاف مؤقت] [capslock] [numlock]
وظيفة | حدود | غاية |
---|---|---|
exist() | element_identifier | صحيح أو خطأ إذا ظهر العنصر قبل انتهاء المهلة |
present() | element_identifier | قم بإرجاع True أو False إذا كان العنصر موجودًا الآن |
count() | element_identifier | إرجاع عدد عناصر الويب كعدد صحيح |
clipboard() | text_to_put أو لا توجد معلمة | وضع النص أو إرجاع نص الحافظة كسلسلة |
get_text() | source_text ، left ، right ، count=1 | إرجاع النص بين العلامات اليسرى واليمنى |
del_chars() | source_text ، characters | إرجاع النص بعد حذف الأحرف المعطاة |
mouse_xy() | إرجاع إحداثيات '(x,y)' للماوس كسلسلة | |
mouse_x() | إرجاع إحداثيات x للماوس كعدد صحيح | |
mouse_y() | إرجاع إحداثي y للماوس كعدد صحيح | |
title() | عنوان صفحة الإرجاع لصفحة الويب الحالية كسلسلة | |
text() | إرجاع محتوى النص لصفحة الويب الحالية كسلسلة | |
timer() | وقت العودة المنقضي بالثواني بين المكالمات كتعويم |
لكتابة كمية كبيرة من النص بسرعة، استخدم الحافظة () ولوحة المفاتيح () للصقه بدلاً من الكتابة ()
TagUI هو أحد برامج RPA الرائدة مفتوحة المصدر؟ مع عشرات الآلاف من المستخدمين. تم إنشاؤه في 2016-2017 عندما غادرت بنك DBS كمهندس أتمتة اختباري لقضاء إجازة لمدة عام في أوروبا الشرقية. تمت كتابة معظم قاعدة التعليمات البرمجية الخاصة بها باللغة نوفي ساد صربيا. وفي عام 2018، انضممت إلى AI Singapore لمواصلة تطوير TagUI.
على مدى بضعة أشهر في عام 2019، توليت دور الأب بدوام كامل، حيث أعتني بطفلتي وزوجتي المولودة حديثًا؟؟. بين فترة العمل في مجال تربية الأطفال، استغلت وقتي لإنشاء حزمة Python المبنية على TagUI. آمل أن يجعل pip install rpa
الحياة أسهل لمستخدمي Python من مختلف مناحي الحياة.
لقد كنت أحافظ على الحزمة (ونسخة متشعبة من TagUI محسنة لها) في وقتي الشخصي. لكن الآن، مارسيلو سيسين، لويس أليخاندرو، جوزيف فولوب، تولاني جاي تيكولو، شيان تشوا، لورانس ليو، بالا رانجاناثان، أنا الفريق الجديد الذي يحافظ على هذه الحزمة. نحن سعداء أن عشرات الآلاف من الناس يستخدمونه؟
للحصول على معلومات فنية، راجع بنيتها البديهية أدناه وتعليقات وافرة في هذه الحزمة ذات الملف الواحد.
أود أن أشيد وأعرب عن تقديري لهؤلاء المساهمين الرائعين ذوي المصادر المفتوحة أدناه ❤️
RPA لـ Python هو برنامج مفتوح المصدر تم إصداره بموجب ترخيص Apache 2.0
Mindly
نادرًا ما أقدم توصيات بشأن المنتجات، بخلاف برنامج OpenRPA المذهل وأدوات RPA مفتوحة المصدر التي عملت عليها شخصيًا. أود أن أوصي باستخدام تطبيق Mindly Mindmapping المتوفر على الهاتف ونظام التشغيل macOS.
الخريطة الذهنية هي طريقة بديهية لتخزين المعلومات وتنظيمها واسترجاعها، لأنها تحاكي كيفية عمل العقل - العلاقات بين المفاهيم والذكريات المختلفة. إنه مثالي للاستفادة بشكل مثمر من جيوب الوقت أثناء التنقل.
الصورة أدناه هي مثال Mindly على فوائد القهوة. أنا شخصيًا أستخدمه لرسم خريطة حياتي للسنوات الـ 13 المقبلة، والتفكير في كيفية أن أكون زوجًا أفضل، والاحتفاظ بقائمة من الأطعمة البريطانية التقليدية، والرموز الشريطية لأعضاء المتجر، بالإضافة إلى تدوين الملاحظات أثناء التنقل. هناك أيضًا خريطة ذهنية لابنتي التي تبلغ من العمر 3YO لتلعب بها، فهي تستمتع فقط بسحب العقد إلى سلة المهملات. لذلك قمت بإنشاء خريطة ذهنية وهمية في وضع الاستعداد حتى تتمكن من تدميرها.
وأفضل ما في الأمر هو أن الإصدار المجاني يجب أن يلبي احتياجات معظم المستخدمين. لم أتجاوز الحد المجاني البالغ 100 عقدة لكل خريطة ذهنية، لكنني اشتريته في وقت مبكر بعد استخدامه لدعم عمل الفريق الذي يقف وراء هذا التطبيق.
ملحوظة: لا أعرف فريق Mindly، فقط أوصي بالتطبيق هنا لأنه رائع