get_process_id() из библиотеки Process() робота. "Нет активного процесса"
Я пытаюсь использовать библиотеку фреймворка робота Process() для запуска и отслеживания процессов. https://robot-framework.readthedocs.io/en/v3.0.3/_modules/robot/libraries/Process.html
После запуска процесса я не могу использовать метод get_process_id(). Я написал простой пример, используя notepad.exe ниже
path = "C:\\WINDOWS\\system32"
Process().start_process('notepad.exe',shell=False, cwd=path)
var = Process().get_process_id()
BuiltIn().log_to_console(var)
Это дает мне ошибку "Нет активного процесса".
В качестве альтернативы, используя ручки, как описано в документации
path = "C:\\WINDOWS\\system32"
handle = Process().start_process('notepad.exe',shell=False,cwd=path)
var = Process().get_process_id(handle)
BuiltIn().log_to_console(var)
Я получаю сообщение об ошибке "Несуществующий индекс или псевдоним 1".
1 ответ
Когда вы делаете Process().get_process_id()
вы создаете новый экземпляр библиотеки. Этот экземпляр не знает ни о каких процессах, запущенных предыдущим экземпляром библиотеки.
Вам нужно получить один экземпляр библиотеки и использовать его последовательно.
processLib = Process()
processLib.start_process(...)
var = processLib.get_process_id()
Лучше всего попытаться получить ссылку на существующую библиотеку процессов, используя BuiltIn().get_library_instance
и только создать новый, если он не существует.