作为自动化Selenium测试的一部分,我喜欢截取不同UI视图的屏幕截图,将它们存储在某个目录中,然后通过CI工具(在我们的示例中为Jenkins)发布它们以获取最新的成功构建
在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文件?
答案 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)
如何使路径成为使用数据驱动测试在启动时设置的变量?
答案 3 :(得分:0)