如何在Selenium IDE中定义相对/跨平台的屏幕截图路径?

时间:2012-03-28 15:39:16

标签: selenium cross-platform build-automation screenshot selenium-ide

作为自动化Selenium测试的一部分,我喜欢截取不同UI视图的屏幕截图,将它们存储在某个目录中,然后通过CI工具(在我们的示例中为Jenkins)发布它们以获取最新的成功构建

enter image description here

在HTML Selenium测试用例中,捕获屏幕截图如下所示:

<tr>
    <td>captureEntirePageScreenshot</td>
    <td>/tmp/screenshot-reportpage-1.png</td>
    <td></td>
</tr>

到目前为止,我已经使用了像/tmp/这样的路径,因为测试是在Unix / Linux机器上运行的,我也是在Linux上开发的。

现在,当一个使用Windows的同事需要使用Selenium IDE在本地运行相同的测试时,我遇到了问题。像C:\screenshot-1.png这样的绝对Windows路径可以在他的机器上运行,但当然不能在构建服务器上运行。

我们尝试过使用简单的相对路径,例如screenshot-1.png./screenshot-1.png,但在Selenium IDE中失败并出现令人讨厌的错误消息:

[error] Unexpected Exception: message -> Component returned failure code: 0x80520001 
(NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath], QueryInterface -> function 
QueryInterface() { [native code] }, result -> 2152857601, name -> NS_ERROR_FILE_UNRECOGNIZED_PATH,  
filename -> chrome://selenium-ide/content/selenium-core/scripts/selenium-api.js, lineNumber -> 3030,    
columnNumber -> 0, location -> JS frame :: chrome://selenium-ide/content/selenium-core/scripts/selenium-api.js
:: <TOP_LEVEL> :: line 3030, inner -> null, data -> null, initialize -> function initialize() { [native code] }

问题是,是否可以在此指定相对路径?是否有任何方法可以在两种环境中使用它而无需修改测试HTML文件?

4 个答案:

答案 0 :(得分:2)

猜猜我迟到了,无论如何都是通过一个项目与Selenium IDE 2.9.1合作并遇到了这个问题。正确的首选项键实际上是&#34; testCaseDirectory&#34;。他们可能已经改变了它。

<tr>
    <td>storeEval</td>
    <td>Preferences.getString("testCaseDirectory")</td>
    <td>testSuiteFolder</td>
</tr>
<tr>
    <td>captureEntirePageScreenshot</td>
    <td>${testSuiteFolder}/screenshots/screenshot-reportpage-1.png</td>
    <td></td>
</tr>

答案 1 :(得分:1)

您可以指定相对于Test Suite的文件夹:

<tr>
    <td>storeEval</td>
    <td>Preferences.getString(TestSuite.TEST_SUITE_DIRECTORY_PREF);</td>
    <td>testSuiteFolder</td>
</tr>
<tr>
    <td>captureEntirePageScreenshot</td>
    <td>${testSuiteFolder}/screenshots/screenshot-reportpage-1.png</td>
    <td></td>
</tr>

答案 2 :(得分:0)

如何使路径成为使用数据驱动测试在启动时设置的变量?

http://saucelabs.com/blog/index.php/2011/01/selenium-resources-for-newbs-data-driven-testing-with-ide-xml/

答案 3 :(得分:0)