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

В рамках автоматизированных тестов Selenium мне нравится делать скриншоты различных представлений пользовательского интерфейса, сохранять их в каком-то каталоге, а затем публиковать их с помощью инструмента 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 box, и я тоже разрабатываю на Linux.

Теперь я сталкиваюсь с проблемой, когда коллега, использующий Windows, должен выполнить те же самые тесты локально с Selenium IDE.Абсолютный путь Windows, такой как C:\screenshot-1.png, будет работать на его компьютере, но не на сервере сборки, конечно.

Мы пытались использовать простой относительный путь, например, screenshot-1.png или ./screenshot-1.png, ночто не получается с неприятным сообщением об ошибке в IDE Selenium:

[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 ]

2 голосов
/ 04 мая 2016

Думаю, я опоздал на вечеринку, все равно работал с 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>
1 голос
/ 19 апреля 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>
0 голосов
/ 10 июня 2014

Я решил эту проблему с этим аддоном

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

0 голосов
/ 28 марта 2012

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

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

...