Python的UI操作——UiAutomation 库

1.安装

pip install uiautomation

2.UiAutomation 库常用场景

UiAutomation 库主要用于自动化测试和 UI 操作的场景。下面是一些常见的使用场景:

  1. 自动化测试:UiAutomation 库可以帮助开发人员编写自动化测试脚本,通过模拟用户操作和验证应用程序的行为来进行自动化测试。这可以提高测试效率、减少人工测试成本,并确保软件的质量和稳定性。

  2. UI 操作和交互:UiAutomation 库可以用于编写脚本或程序来自动执行各种 UI 操作,如点击按钮、输入文本、选择下拉列表等。这对于需要大量重复性的操作或 UI 流程的自动化非常有用,可以提高工作效率并减少人为错误。

  3. 数据采集和处理:UiAutomation 库可以用于自动化采集网页或应用程序中的数据,例如抓取网页内容、提取信息、填充表单等。这对于需要大规模数据采集和处理的场景非常有帮助,可以节省时间和人力成本。

  4. 界面集成和扩展:UiAutomation 库可以与其他工具或框架结合使用,实现界面的集成和扩展。例如,可以将 UiAutomation 库与数据分析工具、自动化工具或业务系统集成,以实现更复杂的流程和功能。

总之,UiAutomation 库适用于任何需要自动化执行 UI 操作、进行自动化测试或进行界面集成的场景。它提供了丰富的功能和灵活的接口,可以根据具体需求进行定制和扩展。

3.常用方法

你提供的代码使用了 UiAutomation 库的一些常见方法来操作应用程序中的元素。下面是对每行代码的解释:

import uiautomation as uia

导入 UiAutomation 库。

uia.ButtonControl(Name='确定').Click()
uia.HyperlinkControl(Name='确定').Click()
uia.TextControl(Name='确定').Click()

分别通过按钮、超链接和文本控件的名称为"确定"来查找并点击对应的元素。

uia.MenuItemControl(Name='Save   as').Click()

通过菜单项的名称为"Save as"来查找并点击对应的元素。注意,这里的名称中有多个空格,需要保持一致才能正确匹配。

uia.SplitButtonControl(LocalizedControlType='拆分按钮').Click()

通过拆分按钮的本地化控件类型为"拆分按钮"来查找并点击对应的元素。

uia.DocumentControl(LocalizedControlType='文档').Click()

通过文档的本地化控件类型为"文档"来查找并点击对应的元素。

uia.EditControl(Name='账户').Click()

通过编辑框的名称为"账户"来查找并点击对应的元素。

4.在IE浏览器下UI库的常用方法

import uiautomation as uia
uia.ButtonControl(Name='确定').Click()
uia.HyperlinkControl(Name='确定').Click()
uia.TextControl(Name='确定').Click()
uia.MenuItemControl(Name='Save   as').Click()
uia.SplitButtonControl(LocalizedControlType='拆分按钮').Click()
uia.DocumentControl(LocalizedControlType='文档').Click()
uia.EditControl(Name='账户').Click()
uia.ListControl((Name='test1|test2|test3').Click()

在这段代码中,使用了 uia.ButtonControl(Name='确定').Click() 来点击一个名为 “确定” 的按钮,uia.HyperlinkControl(Name='确定').Click() 来点击一个名为 “确定” 的超链接,uia.TextControl(Name='确定').Click() 来点击一个名为 “确定” 的文本控件。
使用了 uia.MenuItemControl(Name='Save as').Click() 来点击一个名为 “Save As” 的菜单项,uia.SplitButtonControl(LocalizedControlType='拆分按钮').Click() 来点击一个本地化控件类型为 “拆分按钮” 的拆分按钮,uia.DocumentControl(LocalizedControlType='文档').Click() 来点击一个本地化控件类型为 “文档” 的文档控件,uia.EditControl(Name='账户').Click() 来点击一个名为 “账户” 的编辑框。
使用了 uia.ListControl((Name='test1|test2|test3').Click() 来点击一个名为 “test1”、“test2” 或 “test3” 的列表控件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

戴森发布全新Airstrait吹风直发器,美发科技品类再添力作

——利用气流,吹干的同时拉直头发,无需热夹板,头发无热损伤 (2023年11月30日,上海)戴森今日重磅发布全新美发造型产品——戴森Airstrait™吹风直发器,作为戴森美发科技品类的又一创新力作&…

Debian Linux安装配置ibus rime中文输入法

Linux安装配置Rime 安装 清除所有fcitx软件包 sudo apt purge fcitx*安装ibus和ibus-rime sudo apt install ibus ibus-rime启用输入法 找到输入法配置 启用ibus输入法 此时由于刚安装完毕ibus并没有启动 要么重启系统 要么输入下面的命令 ibus-daemon -drx找到ibus首选…

边缘计算网关构建智慧楼宇新生态,打造未来建筑管理

边缘计算网关在无人值守环境中的应用十分广泛,尤其在智慧楼宇管理方面发挥着重要作用。它能够实现多个地点多楼宇之间的数据实时互通,通过边缘计算网关物联网应用构建智慧楼宇生态系统,解决传统楼宇管理网络布线、人员巡检以及后期运维等问题…

Leetcode—409.最长回文串【简单】

2023每日刷题(四十八) Leetcode—409.最长回文串 强烈吐槽!!! 非常不理解,同样的代码,为什么C跑不了C就跑得了,力扣编译器是对C语言有歧视吗???…

Android Studio中Flutter项目找不到Android真机设备解决方法

起因:创建正常Android项目可以运行在真机设备上,创建flutter项目就找寻不到Android真机设备。 1:在flutter sdk安装目录按下Shift和鼠标右键,打开Powershell窗口 2:输入以下,然后回车 flutter config --…

yolov3 train.py解读

train.py #-------------------------------------# # 对数据集进行训练 #-------------------------------------# import datetime import os from functools import partialimport numpy as np import torch import torch.backends.cudnn as cudnn import torch.dist…

基于Amazon Bedrock介绍大语言模型

本文基于亚马逊云科技推出的大语言模型与生成式AI的全家桶:Bedrock对大语言模型进行介绍。大语言模型指的是具有数十亿参数(B)的预训练语言模型(例如:GPT-3, Bloom, LLaMA)。这种模型可以用于各种自然语言处理任务&…

目标检测YOLO实战应用案例100讲-基于深度学习的输电线路 鸟巢检测

目录 前言 国内外研究现状 基于深度学习的目标检测算法研究现状

什么是网站?

这篇文章是我学习网站开发,阶段性总结出来的。可以帮助你 通俗易懂 地更加深刻理解网站的这个玩意。 一,网站和网页的区别? 网站是由一个个网页组成。我们在浏览器上面看到的每一个页面就是网页,这些 相关的 网页组成一个网站。…

数据库系统概论期末经典大题讲解(用关系代数进行查询)

今天也是结束的最为密集的考试周,在分析过程中自己也有些许解题的感悟,在此分享出来,希望能帮到大家期末取得好成绩。 一.专门的关系运算 1.选择(σ) 选择操作符用于从关系中选择满足特定条件的元组 例如,…

导出主机上所有docker 镜像并导入到其它主机

保存镜像列表到文件 docker images --format “{{.Repository}}:{{.Tag}}” > image_list.txt 导出列表中所有镜像到tar文件 cat image_list.txt | xargs -L 1 docker save -o all_images.tar 导入tar包中所有镜像 docker load -i all_images.tar

异常处理 springboot

全局异常处理 RestcontrollerAdvice Exceptonhandler package com.it.Exception;import com.it.pojo.Result; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;/*全局异常处理器…

如何制定公司网络安全战略

网络安全可以保护公司的重要信息免受恶意软件和数据泄露等威胁。网络安全策略列出了您公司的 IT 系统当前面临的风险、您计划如何预防这些风险,以及如果发生这些风险该怎么办。 让本文成为您制定有效网络安全策略的一站式指南。我们将讨论网络安全风险评估以及策略…

【图论】重庆大学图论与应用课程期末复习资料2-各章考点(填空证明部分)(私人复习资料)

图论各章考点 一、图与网络的基本概念二、树三、连通性四、路径算法五、匹配六、行遍性问题七、平面图 一、图与网络的基本概念 生成子图:生成子图 G ’ G’ G’中顶点个数V’必须和原图G中V的数量相同,而 E ’ ∈ E E’∈E E’∈E即可。顶点集导出子图…

Flink 读写Doris

Flink Doris Connector 可以支持通过 Flink 操作(读取、插入、修改、删除) Doris 中存储的数据。 Flink Doris Connector Sink的内部实现是通过 Stream load 服务向Doris写入数据, 同时也支持 Stream load 请求参数的配置设定。 版本兼容如下: Connector Flink

【QML】QML与cpp交互(一)—— QML直接调用cpp函数

目录 1、cpp 创建一个类 2、将类对象暴露给QML 3、QML通过对象直接调用cpp函数 1、cpp 创建一个类 类模板如下: #include <QtCore/QObject>class vacUdpClient: public QObject {Q_OBJECT public: vacUdpClient(QObject* parent nullptr): QObject(parent) {}// Q…

Cesium.Geometry.Plane.createPlaneGeometry的用法

var planeGeometry Cesium.Geometry.Plane.createPlaneGeometry(origin, normal, width, height);参数说明&#xff1a; origin&#xff1a;Plane的原点&#xff0c;即法线与平面相交的点。normal&#xff1a;Plane的法线&#xff0c;用于定义平面的方向。width&#xff1a;P…

JVM类加载全过程

Java虚拟机类加载的全过程&#xff0c;即加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化 一、加载 加载 是 类加载过程中的一个阶段&#xff0c; 有以下三部分组成 1&#xff09;通过一个类的全限定名来获取定义此类的二进制流 2&#xff09;将这…

通达OA inc/package/down.php接口存在未授权访问漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一. 产品简介 通达OA&#xff08;Office Anywhere网络智能办公系统&am…