【问题标题】:"Run Process open . {filepath}" in robotframework is not working on Mac but "Run Process explorer.exe {filepath} is working on Windowsrobotsframework 中的“Run Process open . {filepath}”无法在 Mac 上运行,但“Run Process explorer.exe {filepath} 在 Windows 上运行
【发布时间】:2017-02-24 03:11:43
【问题描述】:

我在 Windows10 和 Mac Sierra/El Capitan 上使用 Robotframework 3.0。我尝试在两个系统上使用 RF 操作系统库中的“复制文件”,但在 Mac 上它不起作用。这是 Mac 上的脚本:

Copy file    Testfiles${/}${file}    ${MyDir}
List Directory    ${MyDir}
Run Process open .  /select,${MyDir}${/}${file}  //open . opens the finder
Sleep   5   
Press Ctrl  NUMPAD5    //Right click on Mac
Sleep   1   
Send Keys   e   

我收到以下错误:

OSError:无法运行程序“打开”。 (在目录“/Users/rj/PycharmProjects/automation”中):error=2,没有这样的文件或目录

适用于 Windows 的脚本:

Copy file   Testfiles${/}${file}    ${MyDir}
List Directory  ${MyDir}    
Run Process explorer.exe    /select,${MyDir}${/}${file}
Sleep   5   
Press Alt and Function    10  //Right click on Windows  
Sleep   1   
Send Keys   e   

其中:Testfiles 是一个目录,我想将 {file} 复制到其他目录 {MyDir}。发送键,“Press Alt and Function 10”是在我的 Java 库上创建的关键字

RF 会打开 Testfiles 目录,但没有选择要复制的“文件”。这种情况仅在 Mac 中发生,并且相同的脚本在 Windows 上也能完美运行。

PS:我已经根据 Windows 和 Mac 更改了 {MyDir} 的路径。

【问题讨论】:

  • “不工作”和“不选择”究竟是什么意思?你为什么认为Copy file“选择”一个文件?您是否收到任何日志消息、任何错误?
  • 不工作意味着它实际上没有做任何事情,它打开目录“Testfiles”并停留30秒并且有超时。我认为Copy file 选择了一个文件,因为当我在 Windows 上运行它时,我看到了文件选择,但在 Mac 上看不到
  • 移动文件时如何“选择”文件? “选定”意味着您已经打开了一个窗口并突出显示了一个文件。另外,当机器人超时时,您会收到什么错误或日志消息?
  • 我的错。复制文件有效,我验证了报告并得到了愚蠢的错误。问题在于 Windows 上的这段脚本 Run Process explorer.exe /select,${MyDir}${/}${file} 正在打开文件,但我在 Mac 上用 Run Process open . /select,${MyDir}${/}${file} 替换了这个脚本。在 Mac 上,它会抛出无法运行“open”的错误。如果我使用“运行”而不是“运行进程”,那么它可以工作,但我无法看到目录,因为我必须在之后右键单击。有什么办法可以打开目录吗?在具有上述 cmd 的 Windows 中,它会打开目录,但在 Mac 上不会。
  • 你的标题仍然说问题出在Copy File。您需要编辑问题和标题,以便清楚问题在于运行“打开”命令,而不是文件的实际复制。

标签: macos robotframework


【解决方案1】:

错误消息(如 cmets 中报告的)准确地告诉您出了什么问题。我将强调重要的部分:

OSError: Cannot run program "open ." (in directory "/Users/rj/PycharmProjects/automation"): error=2, No such file or directory

请注意,它告诉您它正在尝试运行名为open . 的程序(“open”,后跟一个空格和一个句点)。空格分隔格式的机器人关键字在参数之间需要两个或更多空格。由于"." 是一个参数,您需要在"open" 和 “。”`:

Run Process open  .  /select,${MyDir}${/}${file}  //open . opens the finder
#               ^^ two spaces here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2022-08-05
    • 1970-01-01
    • 2020-02-02
    • 2019-08-08
    • 2021-05-20
    • 2015-12-31
    相关资源
    最近更新 更多