Как определить относительные / кросс-платформенные пути к скриншотам в Selenium IDE?

В рамках автоматизированных тестов 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?


person Jonik    schedule 28.03.2012    source источник


Ответы (4)


Думаю, я опаздываю на вечеринку, все равно работал с Selenium IDE 2.9.1 через проект и столкнулся с этой проблемой. Правильный ключ предпочтения - это "testCaseDirectory". Вероятно, они его изменили.

<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>
person Michael Johansen    schedule 03.05.2016

Вы можете указать папку относительно 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>
person Lee Kowalkowski    schedule 19.04.2016

Как насчет того, чтобы сделать путь переменной, которая устанавливается при запуске с помощью тестирования на основе данных?

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

person kenki    schedule 28.03.2012

Я решил эту проблему с помощью этого дополнения

https://addons.mozilla.org/en-US/firefox/addon/stored-variables-viewer-seleni/

person Cindy    schedule 10.06.2014