Щелкните DataItem в ListBox, используя Pywinauto - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь автоматизировать публикацию отчетов Power BI в службу Power BI. Я нашел вдохновение здесь - https://github.com/dubravcik/pbixrefresher-python

Примечание: я впервые использую pywinauto

После нажатия на кнопку sh кнопка, вам будет предложено выбрать рабочее пространство для публикации sh отчета. Вот в чем проблема. Я, во всем мире, не могу заставить pywinauto щелкнуть нужную опцию рабочего пространства в ListBox. Ниже приведен пример списка рабочих пространств для публикации sh in.

Fig 1

Допустим, я хочу нажать 'c вариант. (сейчас выбрано «a»). Сейчас есть много вещей, которые я пробовал. Вывод dialog.print_control_identifiers() дает такую ​​структуру ниже.

Fig 2

Текущий код выглядит следующим образом:

    app_instance = Application(backend = 'uia').connect(path = PROCNAME)
    app_window = app_instance.window(title_re = ".*Power BI Desktop")
    app_window.wait("enabled", timeout = 300)
    app_window.Save.wait("enabled", timeout = 300)
    app_window.set_focus()

    # Publish
    if True:
        print("Publishing...")
        app_window.Publish.click_input()
        publish_dialog = app_window.child_window(auto_id = "KoPublishToGroupDialog")
        publish_dialog.print_control_identifiers()
#       publish_dialog.wait("enabled", timeout = 300)
#       modalDialog = publish_dialog.child_window(auto_id = "modalDialog")
#       modalDialog.wait("enabled", timeout = 300)
#       dItem = modalDialog.child_window(title=WORKSPACE,control_type="DataItem")
#       dItem.click_input()

В соответствии с древовидной структурой, я подумал, что есть еще один диалог, который может «удерживать» ListBox. Однако игра с этим не дала результатов. На данный момент я действительно не знаю, как заставить Python сделать этот выбор.

Я буду вечно благодарен за некоторую помощь и совет. Спасибо!

...