我在Windows 10上使用RIDE在java平台上使用Robotframework 3.0。我试图使用操作系统库中的命令,如"Empty Directory and Remove Directory"
。执行这些命令后,我收到此错误:"OSError: unlink(): an unknown error occurred: Directorypath"
和Directory does not exist
这是包含我使用的所有组合和我收到的输出的列表
我的问题是:
1.使用Remove Directory recursive = True;为什么此命令如果有文件则无法删除该文件夹。我能够使用相同的命令而没有任何错误
2.使用Empty目录,为什么我收到目录不存在的错误。我知道该目录不可用。我假设如果目录不可用,此命令将忽略。如果我的假设是错的,那么我该如何解决呢。
我需要有关失败场景的帮助。
答案 0 :(得分:0)
Empty Directory
确实检查目标目录是否存在(发生在库中的私有关键字_list_dir
中)。
如果您想要调用它,并且如果dir不存在则不会失败,请将其包围在Run Keyword And Ignore Error
中:
${rc} ${msg} Run Keyword And Ignore Error Empty Directory ${target dir}
Run Keyword If '${rc}' == 'FAIL' Handle Failed Deletion As You Like
至于1),当您使用Remove Directory
呼叫recursive=True
时,它将/应该没有问题删除目录及其中的任何文件/子目录。
您看到的错误 - OSError: unlink() ...
由python的shutil模块传播,该模块执行实际的删除操作。可能有多种原因 - 您运行测试的帐户无权删除该特定文件(最有可能),该文件与删除操作并行添加(不太可能,例外情况是持有的dir无法取消链接)或类似的原因。尝试使用不同的路径,而不是Windows用户的临时目录,但是您确定可以完全访问和控制的内容。