代码之家  ›  专栏  ›  技术社区  ›  Pyroadrian

从robot process()库中获取\u process\u id()。“无活动进程”

  •  0
  • Pyroadrian  · 技术社区  · 6 年前

    我正在尝试使用Process()robot框架库来启动和跟踪进程。 https://robot-framework.readthedocs.io/en/v3.0.3/_modules/robot/libraries/Process.html

    启动进程后,我无法使用get\u process\u id()方法。我用记事本写了一个简单的例子。下面的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 回复  |  直到 6 年前
        1
  •  0
  •   Bryan Oakley    6 年前

    当你这样做的时候 Process().get_process_id() ,您正在创建 库的实例。此实例不知道库的前一个实例启动的任何进程。

    您需要获得库的单个实例,并一致地使用它。

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

    最好的方法是使用 BuiltIn().get_library_instance ,并且仅在不存在时创建一个新的。