[Robotic Process Automation] Cài đặt và sử dụng SikuliX như một RPA
Nội dung
- Giới thiệu về RPA (Robotic Process Automation)
- SikukiX là gì.
- Một số tài liệu public của SikuliX
- Ứng dụng SikuliX như thế nào.
- SikuliX QUICKSTART
- Demo
- Kết Luận
- Tham khảo.
🔰Giới thiệu về RPA (Robotic Process Automation)
RPA (Robotic Process Automation) là ROBOT phần mềm nhằm tự động hóa đối với những công việc mang tính lặp đi lặp lại để TỰ ĐỘNG HÓA quy trình giúp tiết kiệm thời gian và chi phí.
Ví dụ ứng dụng RPA:
Japanese:
https://bizhint.jp/keyword/108921
http://rpa-technologies.com/about/
Vietnamese:
https://hocodau.org/cong-nghe-robotic-process-automation-la-gi/
http://slimweb.vn/rpa
https://rpavietnam.wordpress.com/2017/12/16/tu-dong-hoa-quy-trinh-bang-robot-rpa-lam-the-nao-va-tai-sao/
🔰SikuliX là gì.
SikuliX là một công cụ để tự động hóa mọi thứ bạn nhìn thấy trên màn hình chạy Windows、Mac、Linux / Unix bằng cách sử dụng thư viện xử lý hình ảnh OpenCV để xác định và kiểm soát các thành phần GUI. Điều này rất tiện lợi trong các trường hợp khi không có quyền truy cập dễ dàng vào nội bộ của GUI hoặc mã nguồn của ứng dụng hoặc trang web bạn muốn thực hiện.
Nó có phổ biến gần đây không? Tôi không đề cập RPA ở đây, nhưng tôi có thể sử dụng SikuliX để làm những thứ giống như RPA.
SikuliX hỗ trợ các ngôn ngữ script
- Python language level 2.7 (supported by Jython)
- Running RobotFramework text-scripts is supported (see docs)
- Ruby language level 1.9 and 2.0 (supported by JRuby)
- JavaScript (supported by the Java Scripting Engine)
Bạn có thể sử dụng các ngôn ngữ phía trên để lập trình SikuliX, default là Py Python.
🔰Ứng dụng SikuliX như thế nào.
Khi bạn muốn tự động hoá một số tác vụ lặp đi lặp lại:
- Những ứng dụng hoặc tranng web hàng ngày bạn sử dụng.
- Chơi game
- Quản trị hệ thống và mạng CNTT
Khi bạn muốn test ứng dụng hoặc web mà bạn đang phát triển.
vv
Những thao tác tự động hoá với SikukiX:
- Thao tác với Application
- Khởi động
- Stop
- Focus
- Thao tác chuột
- Move cursor
- Left click
- Double click
- Right click
- Drag & Drop
- Keyboard input
- Tìm kiếm các khu vực tương tự bằng text hoặc hình ảnh
- Dò tìm event cho khu vực được chỉ định
- Phát hiện sự xuất hiện và biến mất của mẫu văn bản và hình ảnh
- Phát hiện thay đổi trong khu vực
- Tương tác với người dùng và các ứng dụng khác
- Cửa sổ bật lên (kiểm tra thao tác hoặc chọn Có / Không)
- Nhập văn bản từ dialog
- Lựa chọn bằng cách drop down
- Thực thi lệnh
Có vẻ như hầu hết các thao tác có thể được tự động hóa.
🔰SikuliX QUICKSTART
1.Check the prerequisites
- Yêu cầu hệ thống:
SikuliX có thể sử dụng trên hệ thống với:
Windows XP and later including Windows 8 and 10 (32-Bit or 64-Bit)
Mac OSX 10.6 and later including 10.10 and 10.11 (64-Bit only)
Linux/Unix systems depending on the availability of the prerequisites (32-Bit or 64-Bit) (look here for more information)
Mobile OS (like Android, iOS, ...) are currently NOT supported in native mode (VNC solutions might apply). - Cài đặt version java phù hợp
Chúng tôi khuyên bạn nên luôn có phiên bản Oracle / Sun Java gần đây trên hệ thống của mình (version 8 được đề xuất ít nhất cho đến cuối năm 2018).
— Kiểm tra java version:
java -version
- Màn hình ở chế độ Real Screen
Hệ thống chạy tập lệnh SikuliX hoặc bất kỳ ứng dụng nào sử dụng tính năng SikuliX phải có màn hình thực được kết nối. Vì vậy, headless systems không được hỗ trợ (hạn chế Java).
Trong khi sử dụng các tính năng của SikuliX, màn hình sẽ không ở chế độ ngủ và cũng không hiển thị trình bảo vệ màn hình. Nó phải ở trong trạng thái, người dùng có thể làm việc với hệ thống và xem trên màn hình những gì đang diễn ra. - Máy không thể sử dụng song song trong khi các tập lệnh hoặc chương trình SikuliX đang chạy:
Trong khi chạy các kịch bản SikuliX hoặc bất kỳ ứng dụng nào sử dụng các tính năng SikuliX trên một hệ thống, thường thì người ta không thể làm việc trên hệ thống này song song, thậm chí trên một màn hình khác, vì bình thường SikuliX sẽ "sử dụng" chuột và/hoặc bàn phím và xem màn hình theo Luồng công việc SikuliX. Hành động của người dùng trên hệ thống này thường sẽ làm hỏng luồng công việc SikuliX, ngoại trừ việc này được dự định và hỗ trợ bởi quy trình làm việc.
2. Download SikuliX
(valid for version 1.1.x)
Tải SikuliX tại đây:
Dowload
3. Install SikuliX
Các bạn có thể tham khảo 3.How do I set up SikuliX
4. Khởi động SikuliX
4.Getting started with SikuliX IDE
Để khởi động IDE SikuliX, bạn có các tùy chọn sau:
- Bắt đầu ứng dụng tương ứng (trên máy Mac: Sikulix.app, trên Windows (nếu có): Sikulix.exe)
- nhấp đúp sikulix.jar (trên Linux bạn có thể cần phải bật bit thực thi)
- sử dụng tùy chọn ranikulix (.cmd) với các tham số trên dòng lệnh
- đặc biệt trên Mac commandline: open /Applications/SikuliX.app
- sử dụng tùy chọn java -jar path-to-sikulix.jar với các tham số trên một dòng lệnh.
Giao diện SikuliX IDE
🔰Demo
Demo 1
Hello World(MAC)
Làm theo demo trên trang chủ của SikuliX mình được kết quả như bên dưới.
Thực hiện 2 thao tác:
- Click vào biểu tượng Search trên menu bar.
- Gõ vào thanh tìm kiếm dòng chữ "Hello world"
Tham khảo:
SikuliX API for scripting and Java programming
Demo 2
Thường ngày thì mình vẫn thường truy cập vào thư mục dự án nên muốn thực hiện auto nó.
Các thao tác lần lượt là:
- Click biểu tượng search ở thanh menu
- gõ "terminal" để tìm ứng dụng terminal của MAC
- Có thể máy xử lý chưa kịp nên mình đợi nó xuất hiện ứng dụng lên tầm 2 giây
- DoubleClick vào ứng dụng terminal
- Lúc này terminal đã được khởi động, Nếu như nó đã được khởi động trước đó, thì để tránh ảnh hưởng đến các tab hiện tại, mình mở new tab. (CMD + T)
- Cái này chắc mấy bạn biết rồi: gõ cd và ENTER
- di chuyển đến thư mục dự án và ENTER
- gõ "git status" + ENTER
Demo 3
Demo này thì mình thực hiện các thao tác chuột để xem kết quả World Cup trên trang 24h.com.vn.
Nhìn hình ảnh thì mọi người cũng có thể đoán được nội dung rồi :D
Demo 4 (Python)
Demo này sử dụng ngôn ngữ Python để viết script. Thực hiện một số tác vụ như mở nhiều web tab trên chrome, Nếu tab đang mở là Google thì thực hiện truy cập Google Calendar, Nếu là web yahoo.co.jp thì thực hiện click vào menu thời tiết.
🔰Kết luận
Vậy là mình đã giới thiệu về SikuliX tự động hoá các thao tác trên giao diện màn hình sử dụng thư viện xử lý hình ảnh OpenCV. Tuỳ theo công việc của bạn mà bạn có thể viết những đoạn script để tự động hoá thao tác. Sẽ thật tuyệt vời nếu như có robot giúp đỡ chúng ta phải không.
Những gì mà SikuliX có thể làm thật sự có ích. Tôi chỉ demo những ví dụ đơn giản như trên đây. Để có thể áp dụng SikuliX cho những việc cao siêu hơn, thì tuỳ bài toán cụ thể và tôi cũng sẽ cần nghiên cứu thêm để có thể xử lý nhanh và hiệu quả với SikuliX.
🔰Tài liệu tham khảo.
- http://sikulix.com/
- https://www.beex-inc.com/blog/how-to-setup-sikulix-on-windows10/
- https://rpavietnam.wordpress.com/2017/12/16/tu-dong-hoa-quy-trinh-bang-robot-rpa-lam-the-nao-va-tai-sao/
- http://sikulix-2014.readthedocs.io/en/latest/#sikulix-api-for-scripting-and-java-programming
- https://bizhint.jp/keyword/108921
- http://rpa-technologies.com/about/