[python RPA] 3 WAYS TO DO RPA WITH PYTHON

 

python robotic process automation

In this post we’ll cover a few packages for doing robotic process automation with Python. Robotic process automation, or RPA, is the process of automating mouse clicks and keyboard presses – i.e. simulating what a human user would do. RPA is used in a variety of applications, including data entry, accounting, finance, and more.

We’ll be covering pynputpyautogui, and pywinauto. Each of these three packages can be used as a starting point for building your own RPA application, as well as building UI testing apps.

pynput

The first package we’ll discuss is pynput. One of the advantages of pynput is that is works on both Windows and macOS. Another nice feature is that it has functionality to monitor keyboard and mouse input. Let’s get started with pynput by installing it with pip:

1
pip install pynput

Once you have it installed, you can get started by importing the Controller and Button classes. Then, we’ll create an instance of the Controller class, which we’ll call mouse. This will simulate your computer’s mouse to allow you to programmatically click buttons and move the mouse around on the screen.

1
2
3
from pynput.mouse import Button, Controller
 
mouse = Controller()

Next, let’s look at a couple simple commands. To right or left-click, we can use the Button class imported above.

1
2
3
4
5
# left-click
mouse.press(Button.left)
 
# right-click
mouse.press(Button.right)

To double click, you just need to add the number two as the second parameter.

1
mouse.press(Button.left, 2)

We can also move the mouse pointer to a different position by using the move method.

1
2
3
mouse.move(50, -50)
 
mouse.move(100, -200)

pynput can control the keyboard, as well. To do that, we need to import the Key class

1
from pynput.keyboard import Key

To make your keyboard type, you can use the aptly-named keyboard.type method.

1
keyboard.type("this is a test")

As mentioned above, pynput can also monitor mouse movements and keyboard presses. To learn more about that functionality and pynputcheck out this link.

pyautogui

Perhaps the most commonly known package for simulating mouse clicks and keyboard entries is the pyautogui library. pyautogui works on Windows, Linux, and macOS. If you don’t have it installed, you can get it using pip:

1
pip install pyautogui

pyautogui is also straightforward to use. For example, if you want to simulate typing a string of text, just use the typewrite method:

1
pyautogui.typewrite("test pyautogui!")

To left-click your mouse, you can use the click method. To right-click, you can use the rightClick method.

1
2
3
4
5
# left-click
pyautogui.click(100, 200)
 
# right-click
pyautogui.rightClick(100, 200)

Searching for an image on the screen

One of the coolest features of pyautogui is that it can search for an image on the computer screen. This is really helpful if you need to find a particular button to click. You can search for an image by inputting the image file name into the locateOnScreen method. The function returns the topleft coordinate along with the height and width of the identified image.

1
location = pyautogui.locateOnScreen("random_image.png")

pyautogui location image on screen

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

To get the center of identified image, use the center method. Then, you can use the click method to click on the center of the identified image – in this case, a button on the screen.

pyautogui get center of image

1
2
3
center = pyautogui.center(location)
 
pyautogui.click(center)

Sometimes an image may not be found exactly on a screen. In this case, you can add the confidence parameter to locateOnScreen to give Python a confidence level of identifying the image.

1
pyautogui.locateOnScreen("random_image.png", confidence = 0.95)

Taking a screenshot

You can take a screenshot with pyautogui using the screenshot method. Passing a filename will save the screenshot out to that file.

1
s = pyautogui.screenshot("sample_screenshot.png")

It’s also possible to take a screenshot of a specific region, rather than the full screen:

1
pyautogui.screenshot(region = c(0, 0, 100, 200))

pywinauto

On Windows, another option we can look into is the pywinauto library. The main disadvantage of this library is that it does not work on macOS or Linux. However, it also offers a couple of nice advantages for Windows users. One, it’s syntax is object-oriented – it’s made to be more Pythonic. Secondly, because of its design, the library can make it easier to perform certain tasks, like clicking on specific buttons or finding menu items in an application.

For example, let’s start by launching Notepad, typing some text, and saving the file. We can do that using the code snippet below. Here, we start Notepad by using the Application class. Then, we refer to the Notepad file we just opened by “UnitledNotepad”. We can use the Edit.type_keys to start typing text.

1
2
3
4
5
6
7
8
from pywinauto.application import Application
 
app = Application(backend="uia").start("notepad.exe")
app.UntitledNotepad.Edit.type_keys("Starting notepad...")
app.UntitledNotepad.menu_select("File->SaveAs")
sub_app=app.UntitledNotepad.child_window(title_re = "Save As")
sub_app.FileNameCombo.type_keys("test_file.txt")
sub_app.Save.click()

Learn more about pywinauto by checking out this link.

Conclusion

That’s it for this post! We covered three packages for doing robotic process automation with Python. 

[출처] https://theautomatic.net/2020/12/17/3-ways-to-do-rpa-with-python/

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
391 [python 인터넷][네이버 뉴스 크롤링] python crawling - 네이버 뉴스 기사 크롤링 file 졸리운_곰 2022.06.28 37
390 [python RPA] Robotic Process Automation with Python file 졸리운_곰 2022.03.03 37
» [python RPA] 3 WAYS TO DO RPA WITH PYTHON file 졸리운_곰 2022.03.03 11
388 [Python RPA] [Python] - 모듈탐구 pyautogui - Python 폴터가이스트 졸리운_곰 2022.03.03 27
387 [python][자료구조] python anaconda 에서 mysql 접속 졸리운_곰 2022.01.25 78
386 [python][anaconda] 파이썬3(python3) 설치하고 환경(env) 관리하기 - 아나콘다3(anaconda3)를 활용한 설치 file 졸리운_곰 2022.01.20 16
385 [python][인공지능] [TensorFlow] Anaconda 가상환경 이용하여 TensorFlow GPU 설치 졸리운_곰 2022.01.20 37
384 [python][anaconda] 파이선 아나콘다 최신 버전 업데이트하기 file 졸리운_곰 2022.01.20 38
383 [python 자료구조] 림코딩의 파이썬으로 csv 다루기 강좌 (읽기,쓰기,수정,추가) 졸리운_곰 2022.01.16 48
382 [Python 데이터분석][python 데이터분석 프로덕션] [Python] Docker를 사용한 Dash 웹앱 생성 file 졸리운_곰 2021.12.10 40
381 [python][flask] bitnami의 django 서버로 flask 서비스 file 졸리운_곰 2021.12.10 14
380 [python 인터넷] How to Select CheckBox and Radio Button in Selenium WebDriver 졸리운_곰 2021.11.26 40
379 [python 인터넷] [Python] Selenium 사용하기 (+PhantomJS) file 졸리운_곰 2021.11.26 16
378 [python 인터넷] Python Selenium(셀레니움) 크롬창 활성 탭 변경하기 file 졸리운_곰 2021.11.26 15
377 [python 인터넷 ,selenium] selenium iframe 처리하기 file 졸리운_곰 2021.11.26 36
376 [python 인터넷] Selenium에서 특정 element가 갑자기 클릭이 되지 않을 때 (python) 졸리운_곰 2021.11.26 14
375 [python 인터넷] Selenium Python button 클릭 file 졸리운_곰 2021.11.26 16
374 [python 인터넷] Tor browser 로 selenium webdriver 크롤링 ip 우회 [Windosws] 졸리운_곰 2021.11.26 17
373 [python 인터넷] 파이썬 셀레니움을 이용한 DC인사이드 자동 글쓰기 file 졸리운_곰 2021.11.26 87
372 [Python 인공지능] TextRank 를 이용한 키워드 추출과 핵심 문장 추출 (구현과 실험) file 졸리운_곰 2021.11.22 25
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED