Как обрабатывать динамически изменяющиеся элементы UIE в atomac/python?
Я знаком с инструментом автоматизации пользовательского интерфейса Atomac, я пытаюсь получить доступ к кнопке в моем приложении 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 ответ
Я вижу, что вы задали вопрос некоторое время назад, но я надеюсь, что это поможет:
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)
Таким образом, вы находите окно приложения динамически.