IOError: [Errno 9] Bad file descriptor using robot framework with Python
IOError: [Errno 9] Bad file descriptor using robot framework with Python
我正在尝试 运行 以下 Python 2.7.10 代码在 Win7 上:
from robot import run
run("Login.robot", variable=['USERNAME:testuser@fakemail.com'])
Login.robot 是一个非常简单的机器人框架测试,打开浏览器 window,加载我们的登录页面,输入用户名和密码,然后确认用户已登录。我有通过使用 pybot 和测试套件 运行s 从命令行 运行 正确测试它。但是尝试从这个脚本 运行 测试套件生成
Traceback (most recent call last):
File "C:\Users\dmdunn\Desktop\test_user_data.py", line 4, in <module>
run("Login.robot", variable=['USERNAME:testuser@fakemail.com'])
File "C:\Python27\lib\site-packages\robot\run.py", line 471, in run
return RobotFramework().execute(*datasources, **options)
File "C:\Python27\lib\site-packages\robot\utils\application.py", line 83, in execute
return self._execute(list(arguments), options)
File "C:\Python27\lib\site-packages\robot\utils\application.py", line 96, in _execute
details, rc=FRAMEWORK_ERROR)
File "C:\Python27\lib\site-packages\robot\utils\application.py", line 110, in _report_error
self._logger.error(message)
File "C:\Python27\lib\site-packages\robot\output\loggerhelper.py", line 59, in error
self.write(msg, 'ERROR')
File "C:\Python27\lib\site-packages\robot\output\loggerhelper.py", line 62, in write
self.message(Message(message, level, html))
File "C:\Python27\lib\site-packages\robot\output\logger.py", line 109, in message
logger.message(msg)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 66, in message
self._writer.error(msg.message, msg.level, clear=self._running_test)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 142, in error
self._highlight('[ ', level, ' ] ' + message, error=True)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 158, in _highlight
self._write(before, newline=False, error=error)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 154, in _write
stream.flush()
IOError: [Errno 9] Bad file descriptor
有什么建议吗?我试过使用机器人文件的绝对路径、单引号、双引号、通过打开的文件对象引用、通过关闭的文件对象引用。谢谢!
我发现这是由于使用了 IDLE,它阻止了机器人框架写入控制台。我的脚本在从 Windows 命令行启动时运行。
打开文件句柄并在句柄打开时调用内部的 robot.run 方法。
希望这能解决您的问题。
mydir = os.path.join('c:/','....')
os.makedirs(mydir)
with open('mydir', 'w') as stdout_file:
k = run("Login.robot",
variable=['USERNAME:testuser@fakemail.com'],
stdout=stdout_file)
我正在尝试 运行 以下 Python 2.7.10 代码在 Win7 上:
from robot import run
run("Login.robot", variable=['USERNAME:testuser@fakemail.com'])
Login.robot 是一个非常简单的机器人框架测试,打开浏览器 window,加载我们的登录页面,输入用户名和密码,然后确认用户已登录。我有通过使用 pybot 和测试套件 运行s 从命令行 运行 正确测试它。但是尝试从这个脚本 运行 测试套件生成
Traceback (most recent call last):
File "C:\Users\dmdunn\Desktop\test_user_data.py", line 4, in <module>
run("Login.robot", variable=['USERNAME:testuser@fakemail.com'])
File "C:\Python27\lib\site-packages\robot\run.py", line 471, in run
return RobotFramework().execute(*datasources, **options)
File "C:\Python27\lib\site-packages\robot\utils\application.py", line 83, in execute
return self._execute(list(arguments), options)
File "C:\Python27\lib\site-packages\robot\utils\application.py", line 96, in _execute
details, rc=FRAMEWORK_ERROR)
File "C:\Python27\lib\site-packages\robot\utils\application.py", line 110, in _report_error
self._logger.error(message)
File "C:\Python27\lib\site-packages\robot\output\loggerhelper.py", line 59, in error
self.write(msg, 'ERROR')
File "C:\Python27\lib\site-packages\robot\output\loggerhelper.py", line 62, in write
self.message(Message(message, level, html))
File "C:\Python27\lib\site-packages\robot\output\logger.py", line 109, in message
logger.message(msg)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 66, in message
self._writer.error(msg.message, msg.level, clear=self._running_test)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 142, in error
self._highlight('[ ', level, ' ] ' + message, error=True)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 158, in _highlight
self._write(before, newline=False, error=error)
File "C:\Python27\lib\site-packages\robot\output\monitor.py", line 154, in _write
stream.flush()
IOError: [Errno 9] Bad file descriptor
有什么建议吗?我试过使用机器人文件的绝对路径、单引号、双引号、通过打开的文件对象引用、通过关闭的文件对象引用。谢谢!
我发现这是由于使用了 IDLE,它阻止了机器人框架写入控制台。我的脚本在从 Windows 命令行启动时运行。
打开文件句柄并在句柄打开时调用内部的 robot.run 方法。 希望这能解决您的问题。
mydir = os.path.join('c:/','....')
os.makedirs(mydir)
with open('mydir', 'w') as stdout_file:
k = run("Login.robot",
variable=['USERNAME:testuser@fakemail.com'],
stdout=stdout_file)