v1.50 • 사용 사례 • API 참조 • 정보 및 크레딧 • 클라우드에서 사용해보기 • PyCon 비디오 • 텔레그램 채팅 •中文• 힌디어 • Español • Français • عربى • বাংলা • Русский • Português • Bahasa • Deutsch • 더보기..
RPA(로봇 프로세스 자동화)용 Python 패키지를 설치하려면 -
pip install rpa
Jupyter Notebook, Python 스크립트 또는 대화형 셸에서 사용하려면 -
import rpa as r
운영 체제 및 선택적 시각적 자동화 모드에 대한 참고 사항 -
Python용 RPA의 간단하고 강력한 API는 로봇 프로세스 자동화를 재미있게 만듭니다! 이를 사용하여 웹사이트, 데스크탑 애플리케이션 또는 명령줄에서 반복적으로 시간이 많이 걸리는 작업을 신속하게 자동화할 수 있습니다.
감사의 표시로 보고된 새로운 버그에 대해 귀하가 선호하는 판매자로부터 미화 200달러 상당의 기프트 카드를 보내드립니다. 기능 제안이 수락되면 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 ()
먼저 텔레그램 앱에서 @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에서 최대 100MB의 파일을 안전하게 공유합니다. 이 파일은 1주일 후에 자동으로 삭제됩니다.
bin_url = r . bin ( 'secret_agent_report.pdf' , 'optional password' )
r . telegram ( 1234567890 , 'Access confidential report at ' + bin_url )
참고 사항 • 요소 식별자 • 핵심 기능 • 기본 기능 • Pro 기능 • 도우미 기능
샘플 Python 스크립트, RPA 챌린지 솔루션 및 RedMart 식료품 예시를 참조하세요. 텔레그램 앱 알림을 보내려면 @rpapybot을 검색하여 메시지 수신을 허용하세요. Chrome 브라우저를 눈에 보이지 않게 자동화하려면 헤드리스 모드를 사용하세요. 일반적인 인간 속도보다 10배 더 빠르게 실행하려면 터보 모드를 사용하십시오(주의 사항을 읽어보세요!). 일부 CAPTCHA는 2Captcha, Capsolver와 같은 서비스를 사용하거나 사용자 작업을 직접 복제하여 해결할 수 있습니다.
전용 PrivateBin 서버에 내장된 임시 온라인 저장소를 사용하여 최대 100MB의 파일을 안전하게 공유하세요. 이 Colab 노트북을 사용하면 휴대폰 브라우저에서 RPA를 실행할 수도 있습니다(예: 최대 5개의 Colab 세션으로 데이터 스크래핑). 설계상 이 패키지는 기업 보안을 갖추고 있으며 인터넷 없이도 설치, 업데이트 및 사용할 수 있습니다.
오류 발생 시 Python 예외를 발생시키기 위해 error(True)를 설정하여 오류 처리를 완전히 제어하고 try-Exception으로 관리합니다. 웹 브라우저 파일 다운로드 위치를 세밀하게 제어하려면 download_location()을 사용하세요. TagUI(rpa 패키지에 최적화된 분기 버전)를 설치하고 호출하기 위해 기본 폴더 위치를 재정의하려면 tagui_location()을 사용하세요.
영어가 아닌 운영 체제를 사용 중이고 "잘못된 연속 바이트" 오류가 발생하는 경우 UTF-8을 지원하도록 코드 페이지를 설정하거나 Python 스크립트의 인코딩을 OS 인코딩으로 변경할 수 있습니다. 중국어의 경우 이 예를 참조하세요. Windows/Mac 응용 프로그램 창에 초점을 맞추려면 focus()를 사용하세요(pywin32 대안은 여기를 참조하세요).
일부 사용자는 AI 및 기계 학습(특히 LLM 대규모 언어 모델)을 사용하여 템플릿 스크립트를 생성하는 데 도움이 되고 그에 따라 미세 조정하는 것이 흥미롭거나 유용하다고 생각할 수 있습니다. 내가 Anthropic의 Claude 3.5 Sonnet과 그 답변에 질문한 몇 가지 질문에 대해 이 문제를 참조하세요.
요소 식별자는 Python용 RPA에 상호 작용하려는 사용자 인터페이스의 요소를 정확하게 알려주는 데 도움이 됩니다. 예를 들어 //*[@id='email']은 id 속성이 'email'인 웹페이지 요소를 가리키는 XPath입니다.
웹 자동화의 경우 웹 요소 식별자는 XPath 선택기, CSS 선택기 또는 id, name, class, title, aria-label, text(), href 속성(우선순위 내림차순)일 수 있습니다. XPath를 수동으로 작성하거나 단순히 속성을 사용하여 작성하는 것이 좋습니다. 시간 초과가 발생하기 전에 요소가 나타날 때까지 자동으로 대기하며 요소를 찾을 수 없다는 오류가 반환됩니다. 기본 시간 초과인 10초를 변경하려면 timeout()을 사용합니다. 추신 - Chrome 확장 프로그램을 사용하여 XPath를 읽는 경우 SelectorsHub를 사용하세요.
? 요소 식별자는 UI 요소를 나타내는 .png 또는 .bmp 이미지 스냅샷일 수도 있습니다(데스크톱 애플리케이션, 터미널 창 또는 웹 브라우저에 있을 수 있음). 지정된 이미지 파일이 없으면 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에 디버그 정보 인쇄 및 기록 |
기본적으로 Python용 RPA는 일반적인 사람의 속도로 실행됩니다. 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 (선택 사항) | zip 파일을 지정된 위치에 압축 해제 |
frame() | main_frame id or name , sub_frame (선택 사항) | 웹 프레임을 설정하고, 프레임()을 재설정하도록 설정 |
popup() | string_in_url (메인 페이지로 재설정하는 매개변수 없음, 특히 다른 브라우저 탭을 제어하는 데 사용될 때 중요함) | 웹 팝업 탭에 컨텍스트 설정 |
run() | command_to_run (명령 사이에 ; 사용) | OS 명령 실행 및 출력 반환 |
dom() | statement_to_run (브라우저에서 실행할 JS 코드) | DOM에서 코드 실행 및 출력 반환 |
vision() | command_to_run (SikuliX용 Python 코드) | 사용자 정의 SikuliX 명령 실행 |
timeout() | timeout_in_seconds (공백은 현재 시간 초과를 반환함) | 대기 시간 초과 변경(기본값 10초) |
키보드() 수정자 및 특수 키 -
[shift] [ctrl] [alt] [win] [cmd] [지우기] [space] [enter] [backspace] [tab] [esc] [up] [down] [left] [right] [pageup] [pagedown ] [삭제] [홈] [끝] [삽입] [f1] .. [f15] [printscreen] [scrolllock] [일시 중지] [capslock] [numlock]
기능 | 매개변수 | 목적 |
---|---|---|
exist() | element_identifier | 시간 초과 전에 요소가 표시되는 경우 True 또는 False |
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() | 부동소수점으로 호출 사이에 경과된 반환 시간(초) |
많은 양의 텍스트를 빠르게 입력하려면 type() 대신 클립보드() 및 키보드()를 사용하여 붙여넣으세요.
TagUI는 선도적인 오픈 소스 RPA 소프트웨어입니다. 수만 명의 사용자와 함께. 2016~2017년 제가 테스트 자동화 엔지니어로 DBS Bank를 떠나 동유럽으로 1년 동안 안식년을 보낼 때 만들어졌습니다. 코드 베이스의 대부분은 Novi Sad 세르비아로 작성되었습니다. 2018년에는 TagUI 개발을 계속하기 위해 AI Singapore에 합류했습니다.
2019년 몇 달 동안 저는 갓 태어난 딸과 아내를 돌보며 풀타임 아빠 역할을 맡았습니다. 보모 사이에 저는 시간을 내어 TagUI를 기반으로 하는 Python 패키지를 만들었습니다. pip install rpa
다양한 계층의 Python 사용자의 삶을 더 쉽게 만들어주기를 바랍니다.
나는 개인 시간에 패키지(및 이에 최적화된 TagUI의 분기 버전)를 유지 관리하고 있었습니다. 하지만 이제 Marcelo Cecin, Luis Alejandro, Jozsef Fulop, Tolani Jaiye-Tikolo, Shyan Chua, Laurence Liew, Bala Ranganathan이 이 패키지를 관리하는 새로운 팀입니다. 수만 명의 사람들이 그것을 사용하게 되어 기쁩니다.
기술 정보는 아래의 직관적인 아키텍처와 이 단일 파일 패키지의 풍부한 설명을 참조하세요.
아래의 놀라운 오픈 소스 기여자들에게 감사의 마음을 전하고 싶습니다 ❤️
Python용 RPA는 Apache 2.0 라이선스에 따라 출시된 오픈 소스 소프트웨어입니다.
Mindly
저는 놀라운 OpenRPA 소프트웨어와 제가 개인적으로 작업한 오픈 소스 RPA 도구 외에는 제품 추천을 거의 하지 않습니다. 휴대폰과 macOS에서 사용할 수 있는 Mindly 마인드매핑 앱을 추천하고 싶습니다.
마인드맵은 마음이 작동하는 방식, 즉 다양한 개념과 기억 간의 관계를 모방하므로 정보를 저장, 구성 및 검색하는 직관적인 방법입니다. 이동 중에 시간을 생산적으로 활용하는 데 적합합니다.
아래 이미지는 커피의 효능에 대한 Mindly의 예입니다. 저는 개인적으로 앞으로 13년 동안의 내 인생을 계획하고, 더 나은 남편이 되는 방법을 반영하고, 전통 영국 음식 목록을 유지하고, 슈퍼마켓 회원 바코드를 저장하고, 이동 중에 메모하는 데 이 앱을 사용합니다. 3살짜리 딸이 가지고 놀 수 있는 마인드맵도 있는데, 딸아이는 노드를 쓰레기통에 끌어다 놓는 것을 좋아합니다. 그래서 나는 그녀가 파괴할 수 있는 더미 마인드맵을 대기 상태에서 만들었습니다.
무엇보다도 무료 버전은 대부분의 사용자의 요구를 충족해야 합니다. 저는 마인드맵당 100노드라는 무료 제한을 초과하지 않았지만, 이 앱을 개발한 팀의 작업을 지원하기 위해 사용 후 아주 일찍 구입했습니다.
추신 - 저는 Mindly 팀을 모릅니다. 단지 앱이 훌륭하기 때문에 여기에 추천하는 것뿐입니다.