自学内容网 自学内容网

Python 三种方式实现自动化任务

在这篇文章中,我们将介绍一些用Python实现机器人过程自动化的包。机器人流程自动化(Robotic process automation,简称RPA)是指将鼠标点击和键盘按压自动化的过程,即模拟人类用户的操作。RPA用于各种应用程序,包括数据输入、会计、财务等。我们将介绍pynput、pyautogui和pywinauto。这三个包中的每一个都可以作为构建自己的RPA应用程序以及构建UI测试应用程序的起点。

在这里插入图片描述

pynput

我们要讨论的第一个包是pynput。pynput的优点之一是它在Windows和macOS上都可以工作。另一个不错的功能是它具有监视键盘和鼠标输入的功能。让我们开始使用pynput,使用pip安装它:

pip install pynput

安装好之后,就可以开始导入Controller和Button类了。然后,我们将创建Controller类的一个实例,我们将其称为mouse。这将模拟您的计算机的鼠标,让您以编程方式点击按钮和移动鼠标在屏幕上。

from pynput.mouse import Button, Controller
 
mouse = Controller()

接下来,让我们看几个简单的命令。要右击或左击,我们可以使用上面导入的Button类。

# left-click
mouse.press(Button.left)
 
# right-click
mouse.press(Button.right)

要双击,您只需要添加数字2作为第二个参数。


mouse.press(Button.left, 2)

我们还可以使用move方法将鼠标指针移动到不同的位置。

mouse.move(50, -50)
 
mouse.move(100, -200)

Pynput也可以控制键盘。为此,我们需要导入Key类

from pynput.keyboard import Key

要创建键盘类型,可以使用适当命名的键盘。类型的方法。

keyboard.type("this is a test")

如上所述,pynput还可以监视鼠标移动和键盘按压。要了解有关该功能和输出的更多信息,请查看此链接

pyautogui

也许最常见的模拟鼠标点击和键盘输入的包是pyautogui库。pyautogui适用于Windows、Linux和macOS。如果你没有安装它,你可以使用pip安装它:


pip install pyautogui

Pyautogui也很容易使用。例如,如果你想模拟键入一串文本,只需使用typewrite方法:


pyautogui.typewrite("test pyautogui!")

要左键单击鼠标,可以使用click方法。要右键单击,可以使用rightClick方法。

# left-click
pyautogui.click(100, 200)
 
# right-click
pyautogui.rightClick(100, 200)
  • 搜索屏幕图像

pyautogui最酷的功能之一是它可以在计算机屏幕上搜索图像。这是非常有用的,如果你需要找到一个特定的按钮点击。您可以通过在locateOnScreen方法中输入图像文件名来搜索图像。该函数返回topleft坐标以及已识别图像的高度和宽度。

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

为了得到识别图像的中心,使用中心法。然后,您可以使用click方法单击已识别图像的中心-在本例中是屏幕上的按钮。

center = pyautogui.center(location)
 
pyautogui.click(center)

有时在屏幕上可能找不到图像。在这种情况下,您可以向locateOnScreen添加confidence参数,为Python提供识别图像的置信度。


pyautogui.locateOnScreen("random_image.png", confidence = 0.95)
  • 截屏

您可以使用截图方法在pyautogui中截取屏幕截图。传递一个文件名将把屏幕截图保存到该文件。

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

也可以截取特定区域的截图,而不是全屏:

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

你也可以参考上篇文章了解更多特性。

pywinauto

在Windows上,我们可以研究的另一个选项是pywinauto库。这个库的主要缺点是它不能在macOS或Linux上工作。不过,它也为Windows用户提供了一些不错的优势。首先,它的语法是面向对象的——它被设计得更加python化。其次,由于它的设计,库可以更容易地执行某些任务,如单击特定按钮或查找应用程序中的菜单项。

例如,让我们从启动记事本开始,输入一些文本,并保存文件。我们可以使用下面的代码片段来做到这一点。在这里,我们通过使用Application类启动Notepad。然后,我们引用我们刚刚打开的记事本文件“UnitledNotepad”。我们可以使用编辑。Type_keys开始输入文本。

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()

通过查看官方文档了解更多关于pywinauto的信息。

最后总结

本文介绍了用Python实现机器人过程自动化的三个包,方便读者选择、对比学习。


原文地址:https://blog.csdn.net/neweastsun/article/details/143772896

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!