Передача переменной в сценарий Selenium-IDE - PullRequest
4 голосов
/ 20 апреля 2011

Возможно ли для сценария MSBuild передать аргумент тестирующему исполнителю Selenium, который затем может быть использован тестовым сценарием Selenium-IDE? Я надеялся, что смогу сделать что-то вроде ...

java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html -myVariable $(environmentSpecificVar)

... а затем используйте его из моего скрипта Selenium-IDE, как ...

waitForTextPresent    The passed in variable is ${myVariable}

Нет проблем с передачей URL-адреса, специфичного для среды (вот что такое SeleniumTestBaseUrl), но у меня возникают проблемы с передачей какой-либо другой среды, специфичной для моих сценариев Selenium-IDE.

Спасибо!

Ответы [ 4 ]

2 голосов
/ 28 апреля 2013

Ключом является параметр Selenium -userExtensions

Сначала позвольте сценарию создать временный js-файл (в данном случае получая параметр Jenkins):

echo "var myvariable='$myJenkinsVariable'" > user-extensions.js

Затем передача пользовательской переменной в Selenium, как в этом примере:

java -jar /var/lib/selenium/selenium.jar -htmlSuite *firefox http://flowcom.se "build/suite.html" "build/report/report.html" -userExtensions "user-extensions.js"

В моем тестовом файле можно получить переменную через storeEval:

<tr>
    <td>storeEval</td>
    <td>myvariable</td>
    <td>myvariable</td>
</tr>
<tr>
    <td>echo</td>
    <td>${myvariable}</td>
    <td></td>
</tr>
2 голосов
/ 03 апреля 2012

Следующая команда позволит вам получить некоторые переменные среды из Selenium IDE. Это также работает в Selenium RC, если вы используете * firefox в качестве браузера.

Command: storeEval
Target: Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME');
Value: username

Ссылка: Поиск пользователя, вошедшего в систему в данный момент по расширению Firefox

1 голос
/ 21 апреля 2011

Поскольку вы запускаете команду java, вы должны попытаться установить определенное свойство в командной строке, используя флаг -D:

java -jar selenium-server.jar ... -DpropertyFoo=valueBar

Чтобы вызвать это в MSBuild, вы просто должны установить свойство иоберните вышеупомянутую команду в задачу Exec:

<Exec command="java -jar selenium-server.jar ... -DpropertyFoo=$(propertyFoo)" />

Я не слишком знаком со сценариями Selenium IDE, поэтому я не знаю, сможете ли вы получить доступ к свойствам таким образом, но это то, чтоЯ делаю это при вызове задач ant из моих сценариев MSBuild.

1 голос
/ 20 апреля 2011

Попробуйте установить его как переменную окружения:

 set myVariable=$(environmentSpecificVar) && java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html 

См. Подробнее здесь .

...