机器人框架 AutoIt 库显示没有错误,但没有启动应用程序

Robot framework AutoIt library showing no error, but not starting the application

运行 命令即使在给出完整路径后也无法打开记事本或写字板等应用程序。计算器正在打开,但没有其他程序正在打开。 AutoIt 已安装并在我的系统中运行良好。计算器程序也运行良好,但似乎没有其他应用程序启动。 即使应用程序未启动,所有 运行 都显示测试通过。

我已经尝试了完整路径,并且我在 Robot Framework AutoitLibrary run command does not fail but does not open the application

尝试了另一个答案
Run_Program
    RUN   SnippingTool.exe

似乎 Run 方法隐式应用了 SW_HIDE Flag 参数,在 AutoItX.

AutoIt中,如果使用Default关键字,作为标志参数 在 Run 函数中,它使用标志隐藏启动 window SW_HIDESW_HIDE 也是 AutoItX 中的默认设置,如我的测试所示。

所以结果似乎是 calc.exe 忽略了 SW_HIDE 启动时标记,而 notepad.exe 等其他程序可能适用 它。程序会启动,您可以在 任务管理器 中看到 它们是 运行,但 windows 可能处于隐藏状态。

这是用 Python X64 进程打开的测试文件:

*** Settings ***
Library   AutoItLibrary

*** Variables ***
${SW_MAXIMIZE}      3
${SW_SHOW}          5
${SW_MINIMIZE}      6
${SW_SHOWDEFAULT}  10

*** Test Cases ***
Run_Program
    Run   notepad.exe  ${EMPTY}  ${SW_SHOW}
    Wait For Active Window   Untitled - Notepad
    Send   Welcome To AutoIt!   1

记事本的window确实显示了。

我不确定常量是否已经可用,所以我添加了一些 用作 RunFlag 参数的变量。全部 变量在测试启动 window 状态时测试正常。

请注意 File System Redirector 会影响 x64 OS 上的路径。 一个 32 位进程,即可以重定向到 SysWOW64 目录, 而不是 System32 目录。在 x64 OS、SnippingTool.exe 上 在 System32 中供 x64 进程访问,但不在 SysWOW64 中 对于重定向的 x86 进程。 SysNative 是一个别名,可以避免 x86 进程的重定向。

我不知道 wordpad.exe 在 OS PATH 变量中所以你可能需要 使用完整路径访问。 Run 参数只有 wordpad.exe 未通过测试。