Сбой автоматизации Pywinauto при отсутствии сеанса пользователя - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над автоматизацией программ (программа под названием SEO indexer). Я написал автоматизацию, используя имя библиотеки python pywinauto. Все отлично работает, когда я запускаю автоматизацию через RDP-соединение с сервером. Но когда я пытаюсь выйти из программы и отключиться от RDP, окно Windows «Сохранить как» не запускается и программа вылетает ...

кто-то знает, как это исправить?

код, который отвечает за сохранение файла -

def run(self, process_id, link):
    controls = self._app[u'TForm1']

    text_box = controls.Edit 
    text_box.set_text(link)

    button = controls.ToolBar1

    windows = Desktop(backend="uia")

    button.click()

    self.wait_for_finish(process_id)

    result_box = controls.TVirtualStringTree 
    result_box.RightClick()

    sleep(1)

    windows_list = windows.windows()
    context_menu = windows.window(best_match = "Context")
    save_all_button = context_menu.children()[2]
    save_all_button.select()
    save_as = windows.window(best_match = "save_as")
    properties_section = save_as.children()[0]

    file_name = "C:\\Windows\\Temp\\indexer_" + str(randint(0, 10000))
    file_name_label = properties_section.children()[4].children()[0]
    file_name_label.set_text(file_name)

    save_button = save_as.children()[2]
    save_button.click()

    sleep(2)

    yes_no_dialog  = windows.window(best_match = "GSA SEO Indexer v2.34")
    yes_no_dialog.children()[0].click()

    return file_name

он упал на - save_as = windows.window(best_match = "save_as")

есть ли способ заставить его открыть диалоговое окно сохранения как, даже если нет экрана?

UPDATE:

Я просто замечаю, что проблема не в том, что панель Save as не создана, проблема в том, что когда я без экрана и пытаюсь выбрать из контекстного меню (которое создается) - только текст выделен, не нажимая на нее

1 Ответ

0 голосов
/ 18 июня 2019

Руководство по удаленному выполнению - это то, что вам нужно.Это общая проблема для любого инструмента автоматизации графического интерфейса.Так что вопрос не совсем связан с pywinauto, но я написал это руководство год назад, чтобы адресовать его многим пользователям.

...