Метод SendKeys для AutoIT, сценарий оболочки или pywinauto lib не работает

Сценарий – это то, что я хочу обрабатывать IE всплывающих в robot framework с помощью python. Чтобы обрабатывать всплывающие окна, я использовал AutoIT SendKeys, скрипт оболочки, pywinauto TypeKeys. Код работает правильно при запуске на локальном компьютере, но когда я запускаю скрипт через город команды на машине-агенте, он не работает. Мое наблюдение заключается в том, что на машине-агенте код не работает, чтобы обрабатывать окна.

После анализа я обнаружил, что это связано с тем, что агент-агент работает как заблокированная система во время запуска скрипта через город команды.

Код:

def fhandle_savepopup(self): shell = win32com.client.Dispatch("WScript.Shell") seleniumLib = BuiltIn().get_library_instance('Selenium2Library') shell.AppActivate ("Internet Explorer") sleep(2) autolib = BuiltIn().get_library_instance('AutoItLibrary') shell.SendKeys('{F6}') sleep(3) shell.SendKeys('{TAB}') sleep(3) shell.SendKeys('{ENTER}') 

Я тоже использовал AutoIT и pywinauto lib. Но не повезло.

Пожалуйста, помогите мне найти решение для этого.

Вам нужно держать рабочий стол открытым и не заблокированным (его можно решить, установив автоматический вход в систему + сеанс VNC, например TightVNC). Для TightVNC вам также может потребоваться обновление драйверов видеокарты и установка пользовательского разрешения (например, в панели управления NVIDIA). Конечно, этот узел должен быть подключен к главному узлу Team City с этого открытого рабочего стола (а не как сервис).

Другой вариант – щелкнуть кнопки окна молча (без реальной эмуляции ввода пользователя). В pywinauto это можно сделать, используя Click() ( ClickInput() более реалистично и не будет работать для заблокированной системы):

 app.Window_(title="Popup title").Wait('visible', timeout=10) app.Window_(title="Popup title").OK.Click() 

PS TypeKeys() также работает как реальный пользовательский ввод. У нас есть планы по внедрению тихой версии ( SendChars ) с использованием окна сообщения WM_CHAR которое может сработать для вас. Но выпуск pywinauto 0.6.0 в настоящее время находится в глубоком повторном факторинге. Поэтому он может быть выпущен в апреле или даже мае, но с большой поддержкой WPF.