Msbuild 将变量传递给Selenium IDE脚本

Msbuild 将变量传递给Selenium IDE脚本,msbuild,selenium,selenium-ide,Msbuild,Selenium,Selenium Ide,MSBuild脚本是否可以将参数传递给Selenium测试运行程序,然后由Selenium IDE测试脚本使用?我希望我能做点像 java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html -myVariable $(environmentSpecificVar) …然后在我的Selenium IDE脚本中使用它,如 waitForTextPresent The pas

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)没有问题,但我无法将任何其他特定于环境的内容传入SeleniumIDE脚本


谢谢

尝试将其设置为环境变量:

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

请参阅详细信息。

由于您正在运行java命令,因此应尝试使用-D标志在命令行中设置特定属性:

java -jar selenium-server.jar ... -DpropertyFoo=valueBar
要在MSBuild中调用该命令,只需设置一个属性并将上述命令包装到Exec任务中:

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


我不太熟悉Selenium IDE脚本,所以我不知道您是否能够通过这种方式访问属性,但这就是我从我的MSBuild脚本调用ant任务时所做的。

以下命令将允许您从Selenium IDE中检索一些环境变量。如果您使用*firefox作为浏览器,这也适用于Selenium RC

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

参考资料:

关键是Selenium参数-userExtensions

首先,让脚本创建一个临时js文件(在本例中是获取Jenkins参数):

然后将用户变量传递给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>

仓库
myvariable
myvariable
回声
${myvariable}

设置环境变量似乎可行,但我无法在脚本中使用它-我没有找到用于捕获环境变量的selenium命令。谢谢,设置环境变量是可行的,但似乎无法通过Selenium进行访问。我采用了异常恶劣的策略,将适当的变量XmlPoke'放入脚本中,因为其他方法似乎都不起作用。
<tr>
    <td>storeEval</td>
    <td>myvariable</td>
    <td>myvariable</td>
</tr>
<tr>
    <td>echo</td>
    <td>${myvariable}</td>
    <td></td>
</tr>