【问题标题】:Set screenshot path from default project location to different folder location将屏幕截图路径从默认项目位置设置为不同的文件夹位置
【发布时间】:2018-04-06 11:31:18
【问题描述】:

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

【问题讨论】:

  • 你注意到Set Screenshot Directory这个关键字了吗? robotframework.org/Selenium2Library/…
  • 参见:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: python-2.7 selenium-webdriver robotframework


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    我建议您执行以下操作:

    1. 对于新目录,您应该在打开浏览器的位置之后立即添加以下内容:

    Open Browser ${URL} chrome Set screenshot directory ${OUTPUT FILE}${/}..${/}${TEST_NAME}${/}

    1. 要将屏幕截图名称从默认名称替换为您自己的名称,请创建以下关键字:

    sc Capture page screenshot filename=${SUITE_NAME}-{index}.png

    然后,创建另一个关键字并在安装程序的测试用例上运行它:

        Register Keyword To Run On Failure    sc
    

    在上面的示例中,我使用测试用例名称创建了一个新文件夹,它使用套件项目名称(而不是“selenium-screenshot-1.png”)创建了一个屏幕截图(以防失败)。

    【讨论】:

    • 我按照您的说法进行了尝试,它将屏幕截图保存在具有预期屏幕截图名称的不同位置。但是,当我打开存储在默认位置的日志时,我无法查看该 log.html 中的屏幕截图
    • 提供,您能否就以上内容提供更多意见
    • 截图路径和名称如何在XML中表示?是应该的还是错的?
    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2017-06-26
    相关资源
    最近更新 更多