В рамках автоматизированных тестов Selenium мне нравится делать скриншоты различных представлений пользовательского интерфейса, хранить их в каком-либо каталоге, а затем публиковать их с помощью инструмента 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. Абсолютный путь Windows, такой как C:\screenshot-1.png
, будет работать на его машине, но, конечно, не на сервере сборки.
Мы пробовали использовать простой относительный путь, например 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?