1 Star 1 Fork 0

葛木瓜 / ATOMacTest

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ATOMacTest.py 1.98 KB
一键复制 编辑 原始数据 按行查看 历史
ssfanli 提交于 2019-08-25 13:12 . update
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author: Ssfanli
@Time : 2019/08/24 23:13
@Desc : ATOMac常用功能使用梳理
"""
import atomac
from time import sleep
from atomac.AXKeyCodeConstants import *
bundle_id = 'com.apple.Maps'
# bs = atomac.AXClasses.AXKeyCodeConstants.BACKSPACE
# part 1, 启动应用并获取应用信息
atomac.launchAppByBundleId(bundle_id)
sleep(2)
ato = atomac.getAppRefByBundleId(bundle_id)
print(ato)
# part 2, 获取当前应用windows
cur_win = ato.windows()[0]
print(cur_win)
# part 3, 查找元素
# findFirst,返回第一个匹配的元素
# findFirstR,递归查找,返回第一个匹配的元素(当查找的元素Parent非标准窗口时使用)
# 在AXClasses.py文件中可以找到很多已经定义好的方法
# dt = cur_win.radioButtonsR('地图')[0] # 也可以
dt = cur_win.findFirstR(AXRole='AXRadioButton', AXTitle='地图')
gj = cur_win.findFirstR(AXRole='AXRadioButton', AXTitle='公交')
wx = cur_win.findFirstR(AXRole='AXRadioButton', AXTitle='卫星')
# part 4, 元素属性所有
attr = dt.getAttributes()
# 元素某一个属性
dt_title = dt.AXTitle
print(attr, dt_title)
# part 5, 点击/切到公交
# Method 1,唯一定位元素后,使用Press方法
print(gj)
gj.Press()
# Method 2,定位元素坐标并鼠标点击
# 注意AXPositon得到的坐标是元素左上角的坐标,需要根据实际大小得到元素中心点坐标
dt_position = dt.AXPosition
dt_size = dt.AXSize
coord = (dt_position[0] + dt_size[0] / 2, dt_position[1] + dt_size[1])
print(coord)
dt.clickMouseButtonLeft(dt_position)
# part 6, 输入内容(输入键盘字符,US_keyboard)
s1 = cur_win.findFirstR(AXRole='AXTextField', AXRoleDescription='搜索文本栏')
# s1 == s2
# s2 = cur_win.textFieldsR('搜索文本栏')[0]
s1_p = s1.AXPosition
s1_s = s1.AXSize
s1.tripleClickMouse((s1_p[0] + s1_s[0] / 2, s1_p[1] + s1_s[1] / 2))
s1.sendKeys('7983')
# part 7, 输入键盘上的修饰符
sleep(1)
s1.sendKeys([BACKSPACE])
# 回车
s1.sendKeys([RETURN])
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/freedomlidi/ATOMacTest.git
git@gitee.com:freedomlidi/ATOMacTest.git
freedomlidi
ATOMacTest
ATOMacTest
master

搜索帮助