get_process_id() 来自机器人 Process() 库。 "No active process"

get_process_id() from robot Process() library. "No active 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)

这给了我 "No active process."

的错误

或者,按照文档中的说明使用句柄

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)

我收到错误 "Non-existing index or alias '1'."

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

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

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

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