GUI自动化测试[3]——控件&数鼠标操作

目录

控件的操作

点击

文本

​编辑

鼠标操作

获取坐标

​编辑

mouse模块


只有认知的突破 💫才能带来真正的成长 💫编程技术的学习 💫没有捷径 💫一起加油💫

🍁感谢各位的观看 🍁欢迎大家留言 🍁咱们一起加油 🍁努力成为更好的自己🍁

控件的操作

点击

  • 函数:click_input(),模拟鼠标的左键
python 复制代码
import time

from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

min=win.child_window(title="最大化", control_type="Button")

min.click_input()
print("窗口放大")
time.sleep(2)
win.restore()
print("窗口恢复")

如下所示的运行结果。

  • 函数:right_click_input(),模拟鼠标的右键

python 复制代码
import time

from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

min=win.child_window(title="最大化", control_type="Button")

min.right_click_input()
print("鼠标右键")

如下图所示的运行结果。

  • 函数:double_click_input(),模拟鼠标的双击操作
python 复制代码
import time

from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

min=win.child_window(title="加粗(Ctrl+B)", control_type="Button")

min.double_click_input()
print("双击操作")
  • 扩展

这些点击函数还可以通过coords=(x,y)参数,传个元组坐标来定位,不需使用元素自己的点击方法。举例一个即可,其它亦如此。

python 复制代码
import time
from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")

# 1. 左键单击:指定坐标(222,444)
win.click_input(coords=(222, 444))
time.sleep(1)  # 间隔1秒,避免操作过快

# 2. 右键单击:指定坐标(222,444)
win.right_click_input(coords=(222, 444))
time.sleep(1)

# 3. 左键双击:指定坐标(222,444)
win.double_click_input(coords=(222, 444))

文本

  • 函数:texts(),获取窗口或控件的文本信息。
python 复制代码
import time

from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

min=win.child_window(title="加粗(Ctrl+B)", control_type="Button")

print(min.texts())

鼠标操作

获取坐标

函数:rectangle(),获取元素的左上角和右下角的坐标,返回left,top,right,bottom属性。

python 复制代码
from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

point=win.rectangle()
print(point)

如下图所示的left,top,right,bottom属性。

**函数:mid_point(),**把获取到的rectangle坐标,转为这个元素的中点坐标。

python 复制代码
import time
from pywinauto import Application

App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

point=win.rectangle()
mid=point.mid_point()
print(mid)
mouse模块

mouse模块常用的操作如下表所示。

|----------------------------------------------------|-------------------------------------------------|
| 方法 | 功能描述 |
| mouse.click(button='left', coords=(0, 0)) | 单击指定的坐标 |
| mouse.scroll(coords=(0, 0), wheel_dist=1) | 指定位置滚动鼠标滚轮,wheel_dist表示滚动的距离,大于0是向上滚动,小于0是向下滑动。 |
| mouse.double_click(button='left', coords=(0, 0)) | 双击指定的坐标 |
| mouse.right_click(coords=(0, 0)) | 右键单击指定的坐标 |
| mouse.move(coords=(0, 0)) | 移动⿏标到指定坐标 |
| mouse.wheel_click(coords=(0, 0)) | ⿏标中键单击指定的坐标 |
| mouse.press(button='left', coords=(0, 0)) | 按下⿏标按钮 |
| mouse.release(button='left', coords=(0, 0)) | 释放⿏标按钮 |

举例个滚动的例子

python 复制代码
import time
from pywinauto import Application
from pywinauto import mouse


App=Application(backend='uia')
App.connect(process=42444)
win=App.window(title_re=".*Notepad.*")
win.wait("exists")

point=win.rectangle()

mid=point.mid_point()

mouse.click(button="left",coords=(mid.x,mid.y))
time.sleep(2)
mouse.scroll(coords=(mid.x,mid.y),wheel_dist=10)
time.sleep(2)
mouse.scroll(coords=(mid.x,mid.y),wheel_dist=-10)
相关推荐
Sylvia33.3 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想3 小时前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
ai小陈5 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
2601_962299248 小时前
Azure python操作系统列表
python·操作系统·azure·虚拟机·存储配置文件
weixin_440730509 小时前
selenium实战记录-从登陆-首页-进入应用流程用例三种参数化+日志+报告
服务器·selenium·测试工具
学术 学术 Fun9 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio
2601_9621005410 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
二进制漫游记10 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
-今昭-11 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
2601_9623815811 小时前
【转】Python渗透测试工具:sqlmap
python·渗透测试·sql注入·sqlmap·数据库安全