Mac OS의 Obect를 조작하기 위해서는 Apple Accessibility API를 사용하여야 한다.
PyAtom은 Apple Accessibility API를 사용하여 Mac 응용 프로그램의 GUI객체를 조작해주는 Python Library이다.
Windows의 UIAutomation Library와 동일하게 Mac의 GUI객체를 조작하기 위한 Library로 Xcode의 툴을 통해서 Inspection을 수행할 수 있다.
pip3 install atomacos
# PyAtom Library import
import atomacos
# 계산기 어플을 bundle id를 통해서 실행하
atomacos.launchAppByBundleId('com.apple.calculator')
# 실행된 계산기 어플 Bundle id를 통해서 찾고 객체화하기
calculator = atomacos.getAppRefByBundleId('com.apple.calculator')
# 정상적으로 객체 정보가 반영되었는지 확인
print(calculator)
try:
# 만약 계산기 앱이 정상수행되지 않을 경우 AXTitle 값이 객체에 없게 된다.
getattr(calculator, 'AXTitle')
except:
# 이럴경우 Exception이 발생하는데 발생하면 3초를 대기한 후 다음동작을 수행하도록 한다.
import time
time.sleep(3)
calculator = atomacos.getAppRefByBundleId('com.apple.calculator')
실행 후 객체 정보 확인하기
)을 최초로 실행 할 경우 Mac에서 GUI동작 제어 확인 메시지가 표시된다.시스템환경설정 -> 보안 및 개인정보 보호 -> 개인정보 텝 클릭
1버튼
을 Inspector를 통해서 확인하기1버튼
을 확인 결과 Label : 1
, Title : 1
, Role : AXButton
1버튼
클릭 하기1버튼
을 클릭할 수 있다.Press
가 표시된다. 그래서 해당 element에 Press
동작을 수행한다.# AXRole이 AXButton이고 AXTitle이 1인 값 찾기
one_button = calculator.findFirstR(AXRole='AXButton', AXTitle='1')
# 1버튼 속성값 확인하기
print(one_button.getActions())
# 1버튼 클릭하기
one_button.Press()
전체 스크립트 수행결과
![image.png](https://velog.velcdn.com/post-images%2Fchacha%2F2d943210-4011-11ea-8006-63e078094616%2Fimage.png)
자세한 소스는 다음 URL에서 : https://github.com/jjunghyup/PyAtomSample.git