如果你的工作只需要用手点鼠标就能完成,那么下面这个程序完全可以胜任。
首先导包:
import time
import os
from pymouse import PyMouse
m = PyMouse()
import pyautogui
import cv2
from cnocr import CnOcr
ocr = CnOcr()
上面导入的包中有控制鼠标的PyMouse,有截屏的pyautogui,有图像转换的cv2,有文本识别的CnOcr 。
然后就是用一个循环不断地重复一个个的任务,假设这些任务都是相似的操作,用鼠标完全胜任。
在编写代码的时候需要不停地测量屏幕上需要点击的位置的坐标。用下面这三行代码即可:
time.sleep(3)
po = m.position()
print(po)
主程序如下:
for i in range(10):
for t in range(20):
img = pyautogui.screenshot(region=[498,223,120,18])
img2 = cv2.cvtColor(np.asarray(img),cv2.COLOR_RGB2BGR)
res = ocr.ocr_for_single_line(img2)
cont = "".join(res)
if "国内专利申请" in cont:
break
else:
time.sleep(1)
m.click(554, 229, 1, 2) #双击打开案件
time.sleep(3)
for t in range(20):
img = pyautogui.screenshot(region=[140,81,85,14])
img2 = cv2.cvtColor(np.asarray(img),cv2.COLOR_RGB2BGR)
res = ocr.ocr_for_single_line(img2)
cont = "".join(res)
if "审核" in cont:
break
else:
time.sleep(1)
m.click(184, 89, 1, 1) #单击审核
time.sleep(0.5)
m.click(156, 502, 1, 1) #单击审核通过
由于公司的系统很大,打开和页面跳转比较慢,所以用了一个关键词检测的手段来指导下一步该不该点击。先进入一个循环,截个小图,进行文本识别,如果发现有我们想要的文字,就说明页面已经跳转,可以点击,用break跳出循环。如果没有发现想要的文字,说明页面还在等待,那就sleep1秒钟,再截图进行识别。