目标:
选择下拉框中的“Updates Received”
首先踩坑
识别到这个PopUp Button之后,Accessibil Inspector 显示Children:Empty array
下面没有其他元素了
之后使用_menuItem 等各种方法,都有各种报错
猜测,下拉框展开后,可能会多一些元素出来,但是下拉框展开后,再切换到Accessibil Inspector ,下拉框就自动收起了。
所以Accessibil Inspector 识别不到下拉框中的元素
解决步骤:
- 用getAttributes()获取元素上可用属性的列表,打印出来有这些属性
['AXEnabled', 'AXFrame', 'AXParent', 'AXSize', 'AXFocused', 'AXChildren', 'AXRole', 'AXTopLevelUIElement', 'AXHelp', 'AXPosition', 'AXValue', 'AXWindow', 'AXRoleDescription', 'AXIdentifier']
-
用
pop.AXChildren
打印出Children:[<atomac.AXClasses.NativeUIElement AXMenu 'menu'>]
-
知道下面有个menu就好办了。获取AXChildren下面的AXChildren,得到所有的菜单项。然后就可以对菜单做操作了
代码:
window = automater.windows()[0]
a= window.groupsR()[0]
#定位到下拉框的按钮
pop = a.findFirstR(AXRole='AXPopUpButton')
#展示下拉框按钮的菜单,也可以用pop.Press()
pop.ShowMenu()
#获取元素上可用属性的列表
print(pop.getAttributes())
#获取元素的Children
c=pop.AXChildren
#获取菜单项,并对其中一个菜单做点击操作
print(c[0].AXChildren)
c[0].AXChildren[3].Press()