设置从默认项目位置到不同文件夹位置的屏幕截图路径

时间:2017-10-25 11:33:50

标签: python-2.7 selenium-webdriver robotframework

我有一个包含50个测试用例的套件。当我执行我的套件时,我得到了项目文件夹中列出的所有失败的屏幕截图。我想将这些屏幕截图指向并存储到具有测试用例名称的不同目录中。我希望它是一次性设置,而不是为每个测试用例明确地进行设置。

2 个答案:

答案 0 :(得分:1)

有很多方法可以更改屏幕截图默认目录。

一种方法是在导入Selenium2Library时设置screenshot_root_directory参数。请参阅Selenium2Library文档的importing section和用户指南中的importing libraries

另一种方法是使用Set Screenshot Directory关键字,这与在导入库时指定路径几乎完全相同。但是,使用此关键字,您可以随时设置新路径。例如,您可以使用每个测试用例使用此关键字拥有自己的屏幕截图目录。根据你的问题,这可能是最好的解决方案。

最后,您还可以使用外部工具甚至是侦听器对屏幕截图进行后处理,这会将所有屏幕截图移动到另一个目录。在大多数情况下,之前提到的解决方案要好得多,但在某些情况下您仍可能希望这样做,例如,只有在测试完成执行后才会创建要保存屏幕截图的目录。

答案 1 :(得分:1)

我建议你这样做:

  1. 对于新目录,您应该在打开浏览器之后立即添加以下内容:
  2. Open Browser ${URL} chrome Set screenshot directory ${OUTPUT FILE}${/}..${/}${TEST_NAME}${/}

    1. 要将屏幕截图名称从默认名称替换为您自己的名称,请创建以下关键字:
    2. sc Capture page screenshot filename=${SUITE_NAME}-{index}.png

      然后,创建另一个关键字并在Setup的测试用例中运行:

          Register Keyword To Run On Failure    sc
      

      在上面的示例中,我创建了一个包含测试用例名称的新文件夹,该文件夹创建了一个屏幕截图(如果失败),其名称为套件项目名称(而不是' selenium-screenshot-1.png& #39)。