如何处理atomac/python中动态更改的UIElements?

2024-10-02 18:27:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道atomac UI自动化工具,我试图访问我的mac应用程序中的一个按钮,每次应用程序加载按钮时,UIElement tree都会发生变化,因此我无法在代码中重复使用,下面是我的代码

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,因为我希望它单击的按钮没有发生


Tags: 工具代码tree应用程序uisizemacposition
1条回答
网友
1楼 · 发布于 2024-10-02 18:27:46

我知道你刚才问过这个问题,但我希望这有助于:

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)

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

相关问题 更多 >