v1.50 •ユースケース• API リファレンス•概要とクレジット•クラウドで試す• PyCon ビデオ• Telegram チャット•中文• हिन्दी •スペイン語•フランス語• عربى • বাংলা • Русский •ポルトガル語• マレーシア語•ドイツ語•もっと..
RPA (ロボティック プロセス オートメーション) 用のこの Python パッケージをインストールするには -
pip install rpa
Jupyter ノートブック、Python スクリプト、または対話型シェルで使用するには -
import rpa as r
オペレーティング システムとオプションのビジュアル オートメーション モードに関する注意事項 -
RPA for Python のシンプルかつ強力な API により、ロボットによるプロセスの自動化が楽しくなります。これを使用すると、Web サイト、デスクトップ アプリケーション、またはコマンド ラインでの繰り返しの時間のかかるタスクを迅速に自動化できます。
感謝の印として、新しいバグが報告された場合は、ご希望の販売者から 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 ()
まず、Telegram アプリで @rpapybot を検索して、メッセージの受信を承認します。
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' )
PrivateBin で最大 100 MB のファイルを安全に共有します。PrivateBin は 1 週間後に自然消滅します。
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 などのサービスを使用するか、ユーザー アクションを複製することによって直接解決できます。
専用の PrivateBin サーバー上の内蔵一時オンライン ストレージを使用して、最大 100 MB のファイルを安全に共有します。この Colab ノートブックを使用して、携帯電話のブラウザ上で RPA を実行することもできます (たとえば、最大 5 つの Colab セッションによるデータスクレイピング)。設計上、このパッケージにはエンタープライズ セキュリティが備わっており、インターネットがなくてもインストール、更新、使用できます。
error(True) を設定してエラー時に Python 例外を発生させ、try-excel で管理することで、エラー処理を完全に制御します。 Web ブラウザーのファイルのダウンロード場所をきめ細かく制御するには、download_location() を使用します。 TagUI (rpa パッケージ用に最適化されたフォークされたバージョン) をインストールして呼び出すためにデフォルトのフォルダーの場所をオーバーライドするには、tagui_location() を使用します。
英語以外のオペレーティング システムを使用していて「無効な継続バイト」エラーが発生した場合は、UTF-8 をサポートするようにコード ページを設定するか、Python スクリプトのエンコーディングを OS エンコーディングに変更できます。中国語については、この例を参照してください。 focus() を使用して、Windows/Mac アプリケーション ウィンドウにフォーカスを合わせます (pywin32 の代替案については、こちらを参照してください)。
一部のユーザーは、AI と機械学習 (特に LLM の大規模言語モデル) を使用してテンプレート スクリプトを生成し、それに応じて微調整を行うことが興味深い、または便利だと感じるかもしれません。 Anthropic の Claude 3.5 Sonnet に寄せたいくつかの質問とその回答については、この問題を参照してください。
要素識別子は、ユーザー インターフェイス上のどの要素と対話するかを RPA for Python に正確に伝えるのに役立ちます。たとえば、//*[@id='email'] は、ID 属性「email」を持つ Web ページ要素を指す XPath です。
Web オートメーションの場合、Web 要素識別子は、XPath セレクター、CSS セレクター、または優先度の高い順に、id、name、class、title、aria-label、text()、href の属性になります。 XPath を手動で記述するか、単に属性を使用することをお勧めします。タイムアウトが発生する前に要素が表示されるのを自動的に待機し、要素が見つからないというエラーが返されます。デフォルトのタイムアウトである 10 秒を変更するには、timeout() を使用します。 PS - XPath を読み取るために Chrome 拡張機能を使用している場合は、SelectorsHub を使用してください。
?要素識別子は、UI 要素を表す .png または .bmp 画像スナップショットにすることもできます (デスクトップ アプリケーション、ターミナル ウィンドウ、または Web ブラウザ上に存在する可能性があります)。指定された画像ファイルが存在しない場合、OCR を使用して画面上のテキストが検索され、テキストを含む UI 要素 (例: r.click('Submit Form.png')) が処理されます。 .png 画像では透明度 (不透明度 0%) がサポートされています。画面上の要素の x、y 座標も使用できます。 2 台のモニターを視覚的に自動化するためのメモと macOS Retina ディスプレイの問題。
?さらなる画像識別子の例は、画像の中央のコンテンツが透明に設定されたウィンドウ (PDF ビューア、MS Word、テキストボックスなど) の PNG 画像です。これにより、read() と snap() を使用して OCR を実行し、さまざまなコンテンツを含むアプリケーション ウィンドウ、コンテナ、フレーム、テキストボックスのスナップショットを保存できるようになります。コンテンツが削除されて透明になった PDF フレームの画像例をご覧ください。 read() と snap() の場合、x1、y1、x2、y2 の座標ペアを使用して、画面上の対象領域を定義し、OCR を実行したりスナップショットをキャプチャしたりできます。
関数 | パラメータ | 目的 |
---|---|---|
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 for 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' Web ページです) (または x1、y1、x2、y2) | 要素テキストを返す |
snap() | element_identifier ( 'page' は Web ページです)、 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 | WebページテーブルをCSVに保存 |
bin() | file_to_bin 、 password (オプションですが推奨) | 安全な一時ストレージ |
upload() | element_identifier (CSS)、 filename_to_upload | ファイルを Web 要素にアップロードする |
download() | download_url 、 filename_to_save (オプション) | URLからファイルにダウンロード |
unzip() | file_to_unzip 、 unzip_location (オプション) | zipファイルを指定した場所に解凍します |
frame() | main_frame id or name 、 sub_frame (オプション) | Web フレームを設定し、frame() をリセットします |
popup() | string_in_url (メイン ページにリセットするパラメータはありません。別のブラウザ タブを制御するために使用する場合に特に重要です) | コンテキストを Web ポップアップ タブに設定します |
run() | command_to_run (コマンド間に ; を使用) | OSコマンドを実行して出力を返す |
dom() | statement_to_run (ブラウザで実行する JS コード) | DOM でコードを実行し、出力を返す |
vision() | command_to_run (SikuliX の Python コード) | カスタム SikuliX コマンドを実行する |
timeout() | timeout_in_seconds (空白は現在のタイムアウトを返します) | 待機タイムアウトの変更 (デフォルトは 10 秒) |
Keyboard() 修飾子と特殊キー -
[shift] [ctrl] [alt] [win] [cmd] [clear] [space] [enter] [backspace] [tab] [esc] [up] [down] [left] [right] [pageup] [pagedown] ] [削除] [ホーム] [終了] [挿入] [f1] .. [f15] [プリントスクリーン] [スクロールロック] [一時停止] [capslock] [numlock]
関数 | パラメータ | 目的 |
---|---|---|
exist() | element_identifier | タイムアウト前に要素が表示される場合は True または False |
present() | element_identifier | 要素が現在存在する場合は True または False を返します |
count() | element_identifier | Web 要素の数を整数として返します |
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() | 現在のWebページのページタイトルを文字列として返します | |
text() | 現在のWebページのテキストコンテンツを文字列として返します | |
timer() | 呼び出し間の経過時間を浮動小数点として返します(秒単位)。 |
大量のテキストをすばやく入力するには、type() の代わりに、clipboard() とキーボード() を使用して貼り付けます。
TagUI は主要なオープンソース RPA ソフトウェアですか?数万人のユーザーがいます。これは、私がテスト自動化エンジニアとして DBS 銀行を退職し、1 年間のサバティカルで東ヨーロッパに行った 2016 年から 2017 年に作成されました。そのコードベースのほとんどはノヴィサド・セルビアで書かれています。 2018 年に、TagUI の開発を続けるために AI Singapore に入社しました。
2019年の数か月間、私はフルタイムでパパの役割を引き受け、生まれたばかりの女の子と妻の世話をしました??。子守の合間に、私は時間を使って、TagUI 上に構築されたこの Python パッケージを作成しました。 pip install rpa
さまざまな立場の Python ユーザーの生活が楽になることを願っています。
私は個人的な時間にパッケージ (およびそれに最適化された TagUI のフォークされたバージョン) をメンテナンスしていました。しかし現在、マルセロ・セシン、ルイス・アレハンドロ、ジョセフ・フロップ、トラニ・ジャイエ=ティコロ、シャン・チュア、ローレンス・リュー、バラ・ランガナタン、そして私がこのパッケージを維持する新しいチームとなっている。何万人もの人が使ってくれて嬉しいです?
技術情報については、以下の直感的なアーキテクチャと、この単一ファイル パッケージ内の豊富なコメントを参照してください。
以下に挙げる素晴らしいオープンソースの貢献者に敬意を表し、感謝の意を表したいと思います❤️
RPA for Python は、Apache 2.0 ライセンスに基づいてリリースされたオープンソース ソフトウェアです
Mindly
私は、素晴らしい OpenRPA ソフトウェアと、私が個人的に取り組んだオープンソース RPA ツール以外に、製品を推奨することはほとんどありません。携帯電話と macOS で利用できる Mindly マインドマッピング アプリをお勧めします。
マインドマップは、心の仕組み、つまりさまざまな概念と記憶の間の関係を模倣するため、情報を保存、整理、検索するための直感的な方法です。外出先でタイムポケットを生産的に活用するのに最適です。
下の画像はコーヒーの利点に関するMindlyの例です。私は個人的に、今後 13 年間の人生を計画したり、より良い夫になる方法を考えたり、伝統的なイギリス料理のリストを作成したり、スーパーマーケットの会員バーコードを保管したり、外出先でメモを取るためにこのツールを使用しています。 3 歳の娘が遊べるマインドマップもあります。娘はノードをビンにドラッグするのを楽しんでいます。そこで、彼女が破壊できるダミーのマインドマップをスタンバイに作成しました。
何よりも、無料版はほとんどのユーザーのニーズを満たすはずです。マインドマップあたり 100 ノードの無料制限を超えていませんが、このアプリの背後にあるチームの作業をサポートするために、使用後のかなり早い段階で購入しました。
PS - 私は Mindly のチームを知りませんが、このアプリが素晴らしいのでここで勧めているだけです