【MAC终端UI自动化】获取当前最前端的应用程序

2023-11-11

目的:
在操作当前应用后,弹出一个系统弹窗,想定位到这个弹窗
在这里插入图片描述
方法一(没搞定,期待大佬解答):
想到atomac有个获取当前最前端的应用程序的方法getFrontmostApp

a = atomac.getFrontmostApp
print(a)

返回

<bound method BaseAXUIElement.getFrontmostApp of <class 'atomac.AXClasses.NativeUIElement'>>

没走到方法里去?所以根据返回改成

a = atomac.AXClasses.BaseAXUIElement.getFrontmostApp()
print(a)

报错了

Traceback (most recent call last):
  File "test01.py", line 125, in <module>
    a = atomac.AXClasses.BaseAXUIElement.getFrontmostApp()
  File "/Users/mia_wang/Library/Python/3.8/lib/python/site-packages/atomac/AXClasses.py", line 105, in getFrontmostApp
    if ref.AXFrontmost:
  File "/Users/mia_wang/Library/Python/3.8/lib/python/site-packages/atomac/AXClasses.py", line 826, in __getattr__
    attr = self._getAttribute(name)
  File "/Users/mia_wang/Library/Python/3.8/lib/python/site-packages/atomac/_a11y.py", line 217, in _getAttribute
    _setError(err, 'Error retrieving attribute')
  File "/Users/mia_wang/Library/Python/3.8/lib/python/site-packages/atomac/_a11y.py", line 75, in _setError
    raise error_mapping[error_code](msg)
KeyError: -25201

报错 -25201,但是进入如下方法看,并没有 -25201这个错误

def _setError(error_code, error_message):
    error_mapping = {
        kAXErrorAttributeUnsupported: ErrorUnsupported, # -25205
        kAXErrorActionUnsupported: ErrorUnsupported, # -25206
        kAXErrorNotificationUnsupported: ErrorUnsupported, # -25207
        kAXErrorAPIDisabled: ErrorAPIDisabled, # -25211
        kAXErrorInvalidUIElement: ErrorInvalidUIElement, # -25202
        kAXErrorCannotComplete: ErrorCannotComplete, # -25204
        kAXErrorNotImplemented: ErrorNotImplemented, # -25208
    }
    msg = '{} (AX Error {})'.format(error_message, error_code)

    raise error_mapping[error_code](msg)

方法二:
根据Accessibility Inspector 知道这个应用程序的名字
在这里插入图片描述
根据_getRunningApps方法,打印出所有的应用程序,再根据关键字查到当前应用程序的bundleId

import atomac
a = atomac.AXClasses.BaseAXUIElement._getRunningApps()
print(a)

在这里插入图片描述

根据

atomac.getAppRefByBundleId('com.apple.SecurityAgent')

就定位到这个弹窗了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MAC终端UI自动化】获取当前最前端的应用程序 的相关文章

  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 如何在 osx 终端中返回应用程序版本

    我需要在 Mac osX 10 10 上的 sh 脚本中使用应用程序版本 以便我可以与另一个数字进行比较 以便我可以强制更新或不更新 到目前为止我已经有了这个 我使用 Firefox app 作为示例 FirefoxmdlsVersion
  • 更改 python tkinter canvas 中的线坐标

    我画了一条线tkinter Canvas现在我想移动一端 这可能吗 例如和itemconfig import tkinter tk tkinter Tk canvas tkinter Canvas tk canvas pack line c
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 与 while 循环一样,如何跳过 for 循环中的步骤?

    我尝试像 while 循环一样跳过 for 循环中的几个步骤 在 while 循环中 步骤根据特定条件进行调整 如下面的代码所示 i 0 while i lt 10 if i 3 i 5 else print i i i 1 result
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • 如何使用 paramiko 查看(日志)文件传输进度?

    我正在使用 Paramiko 的 SFTPClient 在主机之间传输文件 我希望我的脚本打印文件传输进度 类似于使用 scp 看到的输出 scp my file user host user host password my file 1
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 解析根元素内元素之间的 XML 文本

    我正在尝试用 Python 解析 XML 以下是 XML 结构的示例 a aaaa1 b bbbb b aaaa2 a
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • 检测 IDLE 的存在/如何判断 __file__ 是否未设置

    我有一个脚本需要使用 file 所以我了解到 IDLE 没有设置这个 有没有办法从我的脚本中检测到 IDLE 的存在 if file not in globals file is not set 如果你想做一些特别的事情 file 未设置
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • 缓存 Flask-登录 user_loader

    我有这个 login manager user loader def load user id None return User query get id 在我引入 Flask Principal 之前它运行得很好 identity loa

随机推荐

  • 在钉钉上怎么手写_钉钉群上课入门和独家进阶功能(图文)

    钉钉群上课入门和独家快速进阶 在钉钉上有两种视频连接方式 直播和视频会议 两者各有利弊 前者合适人数较多 超过两百人 的时候进行 后者适合一个班级进行上课 下面就两者之间的具体操作说明 文中图片皆可点击放大 一 直播 手机 只有手机怎么直播
  • mysql的连接路径_Mysql 连接路径 url 参数解析

    1 mysql url 参数解析 url jdbc mysql 127 0 0 1 3306 user useUnicode true characterEncoding utf8 useUnicode characterEncoding
  • Webpack构建多页应用Mpa(三):文件结构和自动化打包

    本系列教程整体完成后 会完成一个可用的MPA应用 教程实际就是整个MPA的实现过程的记录 如果是想了解单项功能的实现 请继续往下看 如果是想了解整个MPA的开发和思考过程 建议从 Webpack构建多页应用Mpa 一 阐述设计概要 教程开始
  • 方法:sorttable.js用法

    转至 用sorttable js对表格进行排序 对表格进行排序的实现步骤 第一 下载sorttable js 链接 http www kryogenix org code browser sorttable 不需要jquery js 第二
  • castep 编译安装说明

    科学计算软件编译安装方法说明 castep 篇 提供免费TEST QQ 178068275 1 什么是 castep CASTEP Cambridge Sequential Total Energy Package 的缩写 是一个基于密度泛
  • CNN,RNN,LSTM,GRU的前后向传播算法(梯度是怎么更新的)

    目录 1 简单的梯度计算 2 进阶的梯度计算 3 CNN前向后向算法 4 RNN前向后向算法
  • JavaFx中的Image和ImageView

    image 要转换成ImageView 对象才可以添加到结点中 Override public void start Stage stage stage setTitle 测试窗口 Pane pane new Pane Scene scen
  • 打表法经典2题:小于n的质数和第k个丑数

    1 求小于n的所有质数 1 开一个大小为n的bool数组A 下标代表整数 值true代表被mark过 有因子 非素数 2 i 从 2开始到n 1 如果A i 没被mark A i 就是质数 然后mark有A i 因子的数 2 A i 3 A
  • sed命令详解

    http www cnblogs com edwardlost archive 2010 09 17 1829145 htm 1 简介 sed是非交互式的编辑器 它不会修改文件 除非使用shell重定向来保存结果 默认情况下 所有的输出行都
  • MongoDB的基本使用

    基本操作 mongod f mongodb conf 启动mongodb mongo 进入到mongodb控制台 db shutdownServer 关闭服务 user admin db createUser user root pwd r
  • 怎么区分静态网页和动态网页

    在建设网站时 会经常听到静态网页和动态网页 但是他们真正的区别是什么 接下来仔细分析下二者的区别 静态网页是网站建设的基础 静态网页和动态网页之间也并不矛盾 为了网站适应搜索引擎检索的需要 即使采用动态网站技术 也可以将网页内容转化为静态网
  • Response.setContentType对应的类型大全

    Response setContentType MIME 的作用是时客户端的浏览器区分不同种类的数据 并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据 MIME的作用 由于MIME类型与文档的后缀相关 因此服务器使用文档的
  • MySQl心得4--5--数据库视图

    1 修改 查询 删除记录时都会提示多少条记录被影响 但建表不会提示 当表的数据修改后反映到视图 修改 查询 删除视图的命令跟建表时的一样 视图是从一个或多个表 或视图 导出的表 视图是数据库的用户使用数据库的观点 可以根据他们的不同需求 在
  • Jmeter做接口测试-面试题

    一 请说明你用Jmeter做接口测试的整体过程 用Jmeter做接口测试 至少要经过以下几步 1 根据开发提供的接口文档 编写接口测试用例 2 利用JMeter做接口测试 添加线程组和HTTP请求 在HTTP请求中 添加对应的ip地址 端口
  • http连接处理(下)(四)

    1 结合代码分析请求报文响应 下面我们将介绍服务器如何响应请求报文 并将该报文发送给浏览器端 首先介绍一些基础API 然后结合流程图和代码对服务器响应请求报文进行详解 基础API部分 介绍stat mmap iovec writev 流程图
  • CRC算法并行运算Verilog实现

    因为CRC循环冗余校验码的算法和硬件电路结构比较简单 所以CRC是一种在工程中常用的数据校验方法 尽管CRC简单 但在工程应用中还是有些问题会对工程师产生困惑 这篇文章将介绍一下CRC 希望对大家有所帮助 一 CRC算法介绍 CRC校验原理
  • Visual Studio安装时,不能更改共享组件、工具和SDK的位置

    之前安装的时候把安装路径改了 之后卸载不干净 注册表还留有缓存 不能更改位置 如下图 微软官方提供的卸载工具 TotalUninstaller 卸载不干净可以用这个工具 解决办法 更改注册表 HKEY LOCAL MACHINE SOFTW
  • KNN算法分类问题实现介绍和使用

    KNN算法详解 sklearn包介绍 一 sklearn包使用KNN算法 1 准备数据 X np array 5 1 3 5 1 4 0 2 4 9 3 1 4 0 2 4 7 3 2 1 3 0 2 4 6 3 1 1 5 0 2 5 3
  • uniapp的websocket的使用

    1 websocket的封装 uniapp获取websocket返回来的数据可以采用Vuex进行存储 class websocketUtil constructor url time url 是请求的后端的地址 time 是心跳包的时间 t
  • 【MAC终端UI自动化】获取当前最前端的应用程序

    目的 在操作当前应用后 弹出一个系统弹窗 想定位到这个弹窗 方法一 没搞定 期待大佬解答 想到atomac有个获取当前最前端的应用程序的方法getFrontmostApp a atomac getFrontmostApp print a 返