来自机器人Process()库的get_process_id()。 "没有活跃的流程"

时间:2018-04-10 14:54:00

标签: python process robotframework pid

我正在尝试使用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 个答案:

答案 0 :(得分:0)

执行Process().get_process_id()时,您正在创建库的 new 实例。此实例不知道上一个库实例启动的任何进程。

您需要获取该库的单个实例,并始终如一地使用它。

processLib = Process()
processLib.start_process(...)
var = processLib.get_process_id()

最好的办法是尝试使用BuiltIn().get_library_instance获取对现有流程库的引用,如果不存在则只创建一个新流程库。