Automagica是一个开源的智能机器人过程自动化(SRPA)平台,对一些自动化的库进行了整合
安装
官网地址:https://github.com/oakwoodai/automagica
python3.7下载:https://www.python.org/downloads/release/python-373
# 需要python版本为3.7,系统为Win10
pip install https://github.com/OakwoodAI/automagica/tarball/master
功能使用
引用库
from automagica import *
鼠标控制
获取鼠标坐标
GetMouseCoordinates()
鼠标相关操作
# 左键
ClickOnPosition(x, y)
# 双击
DoubleClickOnPosition(x, y)
# 右键
RightClickOnPosition(x, y)
# 移动至坐标位置
MoveToPosition(x, y)
# 基于当前坐标的移动
MoveRelative(x, y)
# 拖动
DragToPosition(x, y, button="left")
场景测试:
鼠标移动到某个位置,然后拖动文件到另一个位置
MoveToPosition(33, 33)
DragToPosition(333, 333, "left")
键盘控制
按键
PressKey(key="Keyname")
Keyname比较多,可以查阅官方文档 https://automagica.readthedocs.io/#keyboard
组合键
# PressHotkey(first_key,second_key,third_key=None)
PressHotkey("ctrl","shift","esc")
输入
Type("www.imshanks.com", interval_seconds=0.01)
Enter()
Type("Automagica python RPA库实践", interval_seconds=0.01)
Enter()
Type("测试中文输入", interval_seconds=0.01)
由于是模拟键盘输入,所以不能直接输入中文
特殊按键
Capslock()
Numlock()
Enter()
SpaceBar()
Backspace()
Delete()
Endkey()
Tab()
浏览器控制
这块比较简单,基本就是封装了selenium
browser = ChromeBrowser()
browser.get('https://baidu.com/')
search_input = browser.find_element_by_xpath('//*[@id="kw"]')
search_btn = browser.find_element_by_xpath('//*[@id="su"]')
search_input.send_keys("site:www.imshanks.com")
search_btn.click()
系统软件控制
按文件路径打开
Openfile("C:\\Users\\shanks\\test.txt")
打开基础应用
OpenCalculator()
OpenPaint()
OpenNotepad()
OpenSnippingTool()
OpenControlPanel()
OpenCleanManager()
OpenDialer()
OpenVolumeMixer()
OpenXPSViewer()
启动服务进程
LaunchProcess("C:\\\Progra~2\\Dropbox\\Client\\Dropbox.exe")
# OR
OpenProgramByName("Dropbox")
检测进程是否存在
ProcessRunning(name="program_name")
常用进程检测
ChromeRunning()
WordRunning()
ExcelRunning()
PowerpointRunning()
DropboxRunning()
FirefoxRunning()
TeamviewerRunning()
SkypeRunning()
EdgeRunning()
OnedriveRunning()
IllustratorRunning()
# 列出所有
ListRunningProcesses()
监控
CPULoad(measure_time=1)
NumberOfCPU(logical=True)CPUFreq()
CPUStats()
DiskStats()
DiskPartitions()
BootTime()
TimeSinceLastBoot()
试一下很直观
Office软件控制
Word
document = OpenWordDocument(r'C:\Users\shanks\Documents\python\test.docx')
print(document)
document = ReplaceTextInDocument(document, text='[placeholder]', replace_with='My text')
ConvertWordToPDF(word_filename=r'C:\Users\shanks\Documents\python\test.docx', pdf_filename=r'C:\Users\shanks\Documents\python\test.pdf')
- 打开文档并不会打开word窗口,只会生成一个document对象
- 替换直接报错
- pdf命令没有任何
这块功能很少且有bug,可以忽略不计了
Excel
首先准备一个测试xlsx
xlsx_filepath = r'C:\Users\shanks\Documents\python\test.xlsx'
# 根据Cell获取
ExcelReadCell(path=xlsx_filepath, cell="A1", sheet=None)
# 根据行列获取
ExcelReadRowCol(path=xlsx_filepath, r=1, c=2, sheet=None)
# 根据Cell写入
ExcelWriteCell(path=xlsx_filepath, sheet=None, cell="D1", write_value="Value1")
常用操作
ExcelCreateWorkbook(path=\"pathname\")
ExcelOpenWorkbook(path=\"pathname\")
ExcelSaveExistingWorkbook(path=\"pathname\", new_path=None)
ExcelCreateWorkSheet(path=\"pathname\", sheet_name=None)
ExcelGetSheets(path=\"pathname\")
# 取值并转List
ExcelPutRowInList(path=xlsx_filepath, start_cell="A1", end_cell="C2", sheet=None)
# => ['A1-test', 'B1-test', 'C1-test']
ExcelPutColumnInList(path=xlsx_filepath, start_cell="A3", end_cell="A8", sheet=None)
# => ['A1-test', 'A2-test']
# 横纵取值
ExcelPutSelectionInMatrix(path=xlsx_filepath, upper_left_cell="A1", bottom_right_cell="C2", sheet=None)
# => [['A1-test', 'B1-test', 'C1-test'], ['A2-test', 'B2-test', 'C2-test']]
比较简单,就2个方法
# 合并
MergePDF(pdf1=\"pathname\", pdf2=\"pathname\", merged_pdf=\"pathname\")
# 获取文本
ExtractTextFromPDFPage(path=\"pathname\", page=1)
文件及文件夹控制
基本就是重新封装了一些常用命令,详见文档 https://automagica.readthedocs.io/#file-and-folder-manipulations
图片控制
包含缩放、旋转、打开、获取信息等基本操作,详见文档 https://automagica.readthedocs.io/#image-operations
邮件发送
SendMailWithHotmail(user="user@hotmail.com", password, destination, subject="", message="", port=587)
SendMailWithGmail(user="user@gmail.com", password, destination, subject="", message="", port=587)
SendMailWithYahoo(user="user@yahoo.com", password, destination, subject="", message="", port=587)
基础操作
都是python基础,便于不懂python的人使用框架,详见文档https://automagica.readthedocs.io/#basic-operations_1
总结
还有1个很重要的功能是OCR,基于Google开源库https://github.com/tesseract-ocr/tesseract实现。Automagica对大量的自动化库进行了整合,可以更方便的实现RPA,官方也表示支持很多商用软件,如SAP、Salesforce等等,这些需要对业务进行分析,流程设计并熟练使用基础功能才能达到的。