Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 设置从默认项目位置到不同文件夹位置的屏幕截图路径_Python 2.7_Selenium Webdriver_Robotframework - Fatal编程技术网

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

Python 2.7 设置从默认项目位置到不同文件夹位置的屏幕截图路径,python-2.7,selenium-webdriver,robotframework,Python 2.7,Selenium Webdriver,Robotframework,我有一个套件,有50个测试用例。当我执行套件时,我会在项目文件夹中列出所有失败的屏幕截图。我想用测试用例的名称将这些截图指向并存储到另一个目录中。我希望它是一次性设置,而不是针对每个测试用例显式地进行设置。有很多方法可以更改屏幕截图的默认目录 一种方法是在导入Selenium2库时设置screenshot\u root\u directory参数。请参阅Selenium2库文档的和《用户指南》中的 另一种方法是使用关键字,它的作用与导入库时指定路径几乎相同。不过,使用此关键字可以随时将路径设置为

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

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

一种方法是在导入Selenium2库时设置
screenshot\u root\u directory
参数。请参阅Selenium2库文档的和《用户指南》中的

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


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

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

一种方法是在导入Selenium2库时设置
screenshot\u root\u directory
参数。请参阅Selenium2库文档的和《用户指南》中的

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


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

我建议您执行以下操作:

  • 对于新目录,应在打开浏览器后立即放置以下内容:
  • 打开浏览器${URL}chrome
    设置屏幕截图目录${OUTPUT FILE}${/}..${/}${TEST_NAME}${/}

  • 要将屏幕截图名称从默认名称替换为您自己的名称,请创建以下关键字:
  • sc
    捕获页面截图文件名=${SUITE_NAME}-{index}.png

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

        Register Keyword To Run On Failure    sc
    

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

    我建议您执行以下操作:

  • 对于新目录,应在打开浏览器后立即放置以下内容:
  • 打开浏览器${URL}chrome
    设置屏幕截图目录${OUTPUT FILE}${/}..${/}${TEST_NAME}${/}

  • 要将屏幕截图名称从默认名称替换为您自己的名称,请创建以下关键字:
  • sc
    捕获页面截图文件名=${SUITE_NAME}-{index}.png

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

        Register Keyword To Run On Failure    sc
    

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

    您是否注意到
    设置屏幕截图目录
    关键字?请参阅:SO的期望是,用户提问时不仅要进行研究以回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:您是否注意到
    设置屏幕截图目录
    关键字?请参阅:SO的期望是,用户提问时不仅要进行研究以回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:正如您所提到的,我尝试过,它使用预期的屏幕截图名称将屏幕截图保存在不同的位置。但是,当我打开存储在默认位置的日志时,我无法查看该日志中的屏幕截图。htmlOfer,您能否提供更多关于如何在XML中表示屏幕截图路径和名称的信息?它是正确的还是错误的?我试过了,正如你提到的,它用预期的截图名称将截图保存在不同的位置。但是,当我打开存储在默认位置的日志时,我无法查看该日志中的屏幕截图。htmlOfer,您能否提供更多关于如何在XML中表示屏幕截图路径和名称的信息?这是正确的还是错误的?