使用 Python 进行 Windows GUI 自动化

这篇具有很好参考价值的文章主要介绍了使用 Python 进行 Windows GUI 自动化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概要

 文章来源地址https://www.toymoban.com/news/detail-501080.html

在今天的文章中,我们将探讨如何使用 Python 进行 Windows GUI 自动化。GUI 自动化可以帮助我们自动执行许多与操作系统交互的任务,比如移动鼠标、点击按钮、输入文本、移动窗口等。Python 提供了两个强大的库:pyautogui 和 pywinauto,使得 GUI 自动化变得简单。接下来我们详细介绍。


pyautogui

pyautogui 是一个纯 Python 的 GUI 自动化库,它可以模拟键盘输入、鼠标点击和移动、在屏幕上查找图像等操作。它对 Windows、macOS、和 Linux 都有良好的支持,可以帮助我们编写跨平台的自动化脚本。

pyautogui 的使用场景

pyautogui 的使用场景非常广泛。以下是一些常见的例子:

  1. ** 测试 **:自动化脚本可以帮助我们自动执行一些复杂的测试用例,比如 UI 测试、功能测试等。

  2. ** 数据录入 **:如果我们需要在多个表单或应用程序中输入相同的数据,自动化脚本可以帮助我们节省大量的时间和精力。

  3. ** 批量操作 **:如果我们需要对大量的文件或数据进行相同的操作,自动化脚本也可以派上用场。

如何安装 pyautogui

在开始使用 pyautogui 之前,我们需要先在我们的 Python 环境中安装它。在命令行中输入以下命令即可:

pip install pyautogui

用 pyautogui 打开记事本,输入文本保存

接下来,我们通过一个简单的例子来展示如何使用 pyautogui。在这个例子中,我们将使用 pyautogui 来自动打开一个记事本,输入一些文字,然后保存并关闭它。

首先,我们导入 pyautogui 库,并设置失败安全特性,当我们将鼠标移动到屏幕的左上角时,自动化会立即停止:

import pyautogui

pyautogui.FAILSAFE = True

然后,我们使用 pyautogui 的 hotkey 函数来模拟按下 Win+R 组合键,打开运行对话框:

pyautogui.hotkey('win', 'r')

接着,我们使用 typewrite 函数来输入 "notepad",并按下回车键:

pyautogui.typewrite('notepad', interval=0.25)
pyautogui.press('enter')

然后,我们等待一下,让记事本完全打开,然后再输入一些文字:

import time

time.sleep(2)  # wait for Notepad to open
pyautogui.typewrite('Hello, world!', interval=0.25)

typewrite 函数可以模拟键盘输入,interval 参数可以设置每个字符之间的间隔,以模拟人类的打字速度。

接下来,我们用 hotkey 函数来模拟按下 Ctrl+S 组合键,保存这个文件:

pyautogui.hotkey('ctrl', 's')  # press the Save hotkey combination
time.sleep(1)  # wait for the Save dialog to appear

然后我们输入文件名,并按下回车键保存文件:

pyautogui.typewrite('hello_world.txt', interval=0.25)
pyautogui.press('enter')  # press the Enter key

最后,我们用 hotkey 函数来模拟按下 Alt+F4 组合键,关闭记事本:

pyautogui.hotkey('alt', 'f4')  # close Notepad

以上就是用 pyautogui 编写的一个简单的自动化脚本。通过这个脚本,我们可以看到,pyautogui 提供了一套非常直观和易用的接口,让我们可以轻松地编写出复杂的自动化脚本。

pywinauto

pywinauto 的主要用途是自动化 Windows GUI 应用程序的测试和自动化。

pywinauto 的使用场景

  • 回归测试:定期运行相同的测试,确保软件在进行更改或更新后仍然可以正常工作。

  • 质量保证:确保软件的新版本或功能与预期的用户体验一致。

  • 持续集成 / 持续部署 (CI/CD) 流程:在自动化的构建和部署过程中,进行软件测试。

  • 任务自动化:自动执行一些重复性的 GUI 操作,如文件管理,软件安装等。

用 pywinauto 来自动化 Windows 计算器

下面是一个简单的 pywinauto 教程,我们将演示如何用 pywinauto 来自动化 Windows 计算器的操作。

首先,你需要确保你的环境已经安装了 Python 和 pywinauto。你可以使用 pip 来安装 pywinauto:

pip install pywinauto

然后,我们可以编写一个简单的脚本来启动计算器应用并执行一些操作:

from pywinauto.application import Application

# 启动 Windows 计算器
app = Application().start("calc.exe")

# 选择计算器窗口
dlg = app.window(title=' 计算器 ')

# 在计算器中输入 2+2
dlg.type_keys('2+2=')

# 打印结果
print(" 结果是:", dlg.Static2.window_text())

这段代码首先启动了 Windows 计算器,然后在计算器中执行了 2+2 的操作,并打印出结果。

** 请注意:这个示例假设你的计算器应用具有类似于 Windows 10 计算器的布局。不同的 Windows 版本可能需要适当调整代码。**

用 pywinauto 来自动化 Windows 记事本

导入模块

在 Python 脚本中,我们需要导入 pywinauto 库。同时,我们还会导入 time 库,因为在执行某些操作时,我们可能需要暂停一下。

from pywinauto.application import Application
import time

启动应用程序

使用 pywinauto 的 Application 对象,我们可以启动和控制应用程序。例如,如果我们要打开记事本,我们可以这样做:

app = Application().start("notepad.exe")

操作窗口

在打开应用程序后,我们通常需要与其窗口进行交互。我们可以使用 app 对象的 window_ 方法来获取窗口。然后,我们可以调用窗口的方法来执行各种操作,如点击按钮或输入文本。

例如,我们可以在记事本中输入一些文本:

app.Notepad.Edit.type_keys("Hello, World!", with_spaces = True)

type_keys 方法会模拟键盘按键。with_spaces = True 参数表示我们希望在每次按键之间添加短暂的延迟,以模拟人类的打字速度。

保存和关闭

最后,我们可以模拟点击菜单选项来保存我们的文件,然后关闭记事本:

app.Notepad.menu_select("File -> Save As")
app.SaveAs.Edit.set_edit_text("example.txt")
app.SaveAs.Save.click()
time.sleep(1)
app.Notepad.menu_select("File -> Exit")

在这个例子中,menu_select 方法用于模拟点击菜单选项,set_edit_text 方法用于在文本框中输入文本,click 方法用于点击按钮。

** 请注意:这个示例假设你的记事本的菜单是英文,如果是中文,则需要调整代码为中文。**

以上就是一个基本的例子,展示了如何使用 Python 和 pywinauto 进行 Windows GUI 自动化。当然,pywinauto 还有更多的功能等待您去探索,包括处理复杂的窗口结构、模拟鼠标操作等。

 

总结

pywinauto 和 pyautogui 都是强大的 GUI 自动化工具,可以帮助你自动化 Windows 应用程序的许多任务,你可以选择合适的工具进行自动化。希望这篇文章和教程能帮你提高工作效率。

 

欢迎点赞转发收藏,感谢🙏

 

 

 

 

到了这里,关于使用 Python 进行 Windows GUI 自动化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(90)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(37)
  • Python之GUI自动化---selenium基础

    1.GUI自动化也就是模拟人的操作来完成基础的功能测试。 2.GUI自动化测试中,需要明白测试脚本和数据的解耦。即实现数据驱动的测试,让操作相同但是数据不同的测试通过一套脚本来实现。 3.在写脚本中要注意“页面对象模型” 的核心理念:以页面为单位来封装页面上的控

    2024年02月05日
    浏览(28)
  • Python GUI自动化神器pyautogui,精准识别图片并自动点赞(32)

    小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 欢迎和猫妹一起,趣味学Python。 今日主题 你听过GUI自动化吗? GUI自动化就是用软件模拟鼠标和键盘的操作。 提到Python GUI自动化,不得不提pyautogui,它使用简单功能强大。 没有安装pyautogui库的话,先用p

    2023年04月23日
    浏览(38)
  • “利用Python使用API进行数据集成和自动化开发的指南“

    标题:利用Python使用API进行数据集成和自动化开发的指南 摘要:本文将为读者提供一个详细而全面的指南,教您如何使用Python编程语言来利用API进行数据集成和自动化开发。我们将介绍API的基本概念,探讨Python中常用的API库和工具,以及演示如何通过编写Python代码来调用和处

    2024年02月13日
    浏览(51)
  • 从零开始学习:如何使用Selenium和Python进行自动化测试?

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年04月23日
    浏览(51)
  • GUI自动化测试工具Sikulix的安装和使用

    从程序内部控制对小白来说太难了,所以使用一下自动化测试的工具直接控制按钮达到我的目的 官网:http://www.sikulix.com/ 下载对应系统的.jar 需要使用java,没有的话安装一下 然后在sikulix的下载目录下执行 安装成功后就会弹出软件的窗口 上图左边是写程序的地方,右边是日

    2023年04月26日
    浏览(26)
  • 【python】windows客户端的ui自动化框架搭建及使用(winappdriver)

    0.环境准备 安装jdk(8以上版本)及其环境配置 安装python3.10.4及其对应的三方包 安装winappdriver,下载地址:https://github.com/microsoft/WinAppDriver/releases/tag/v1.2.1 windows开启开发者模式,本地开启服务:https://jingyan.baidu.com/article/91f5db1bfc57df5d7e05e31d.html 1.思路 整体思路: 1、封装appdriver服

    2024年02月11日
    浏览(32)
  • C#【自动化测试】对Windows桌面应用程序进行UI自动化测试

    本文简述如何利用appium对Windows桌面应用程序进行UI自动化测试。 所谓UI自动化测试,就是 模拟一个用户,对应用程序的UI进行操作,以完成特定场景的功能性集成测试 。 要对Windows桌面应用程序进行UI自动化测试,目前可选的技术主要是两种: VS自带的CodedUI Test和Appium+WinApp

    2024年01月15日
    浏览(52)
  • 使用Burp Suite和Python进行自动化漏洞挖掘—SQL测试注入插件

    每次测注入都是用burp的Intruder模块,很不方便就是批量跑批量测哪些没有过滤 懒人鹅上线,准备搞一个sql测试的插件 本篇文章代码量大,基础可以去看上一篇 测试sql基本注入的载荷,在可能有sql注入的地方发送测试包,目前只测试url中的,并可以根据错误回显判断出数据库

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包