如何在atomac / python中处理动态变化的UIElements?

时间:2016-08-18 11:52:13

标签: python pyatom

我知道atomac UI自动化工具,我试图访问我的mac应用程序中的按钮,每次应用程序加载按钮UIElement树正在改变因为我无法在我的代码中重复使用,下面是我的代码

allButtons= allUIElement[5].findAllR(AXRole='AXButton')
print allButtons
position = allButtons[1].AXPosition
print position
size = allButtons[1].AXSize
print size
clickpoint = ((position[0] + size[0] / 2), (position[1] + size[1] / 2))
print clickpoint
test20Window.clickMouseButtonLeft(clickpoint)

正如你在我的代码中看到的那样,我正在尝试访问UIElement [5]中的按钮,当应用程序下次加载时会动态更改为6,7或1,因为我想要它点击的按钮是没发生

1 个答案:

答案 0 :(得分:0)

我看到你刚才问过这个问题,但我希望这会有所帮助:

your_app = atomac.getAppRefByLocalizedName("Your App Name")
app_window = your_app.windows()[0]
buttons = app_window.findAllR(AXRole='AXButton')
your_button = buttons[0]
button_position = your_button.AXPosition
button_size = your_button.AXSize
clickpoint = ((button_position[0] + button_size[0] / 2), (button_position[1] + button_size[1] / 2))
your_button.clickMouseButtonLeft(clickpoint)

这样您就可以动态找到应用程序窗口。