【问题标题】:Execute Robot Framework file from python script从 python 脚本执行机器人框架文件
【发布时间】:2016-07-29 20:20:08
【问题描述】:
from subprocess import call
import os

call(['robot '+os.getcwd()+'\\aaa.robot'])

file_dir: D:/aaa/test/aaa.robot

脚本现在在同一个目录中

Output:
Traceback (most recent call last):
  File "__init.py", line 7, in <module>
    call(['robot '+os.getcwd()+'\\aaa.robot'])
  File "C:\Python27\lib\subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 710, in __init_
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 958, in _execut
    startupinfo)
WindowsError: [Error 2] Nie mo┐na odnalečŠ okreťlonego pliku

我就是受不了。我不明白为什么在 python 中调整任何东西都这么复杂:(

我想要与此行相同的结果(直接写入 cmd):

/>robot aaa.robot

【问题讨论】:

  • 你希望这个程序能做什么?
  • 我的错,将其编辑为原始帖子,谢谢。
  • 这应该只是普通的启动脚本...

标签: python python-2.7 robotframework


【解决方案1】:

这是另一种方式

import robot

logFile = open('mylog.txt', 'w') 
robot.run("tmp.robot",stdout=logFile)

【讨论】:

  • 这是最好的答案!详细使用说明见robot.run.py
【解决方案2】:

subprocess 需要一个列表,但您输入的是字符串 ('robot '+os.getcwd()+'\\aaa.robot')。

试试:

call(['C:/Python27/python.exe', '-m', 'robot', 'D:/aaa/test/aaa.robot'])

call(['C:/Python27/Scripts/robot.bat', 'D:/aaa/test/aaa.robot'])

【讨论】:

  • 第一个结果与主题相同
  • @user2678074 robot 程序的完整路径是什么,您确定D:/aaa/test/aaa.robot 是正确的吗?
  • 是的。我特别添加了 print os.getcwd() 并且路径是正确的。双重检查
  • 抱歉 :) C:\Python27\Scripts\ride.py btw...它已添加到 PATH
  • 太棒了 :) 您可以在终端中输入robot 并运行程序的唯一原因是因为您的计算机知道robot 实际上意味着`C:/Python27/Scripts/robot.batrobot 是实际程序的别名或“自定义”昵称。这些“昵称”和用户设置称为环境变量。它们仅适用于您的用户。从 Python 的角度来看,robot 没有任何意义——它需要可执行文件的完整路径,或者您需要在 subproces 命令中显式设置cwd=。也许这也可以:call(['robot.bat', 'D:/aaa/test/aaa.robot'], cwd='C:/Python27/Scripts')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2017-11-22
  • 2017-05-26
  • 2019-01-14
  • 2015-02-18
  • 2018-08-29
  • 2018-10-28
相关资源
最近更新 更多