将变量传递给Selenium-IDE脚本
MSBuild脚本是否可以将参数传递给Selenium测试运行器,然后由Selenium-IDE测试脚本使用它?我希望我可以做这样的事情......将变量传递给Selenium-IDE脚本
java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html -myVariable $(environmentSpecificVar)
...,然后从我的硒IDE脚本中喜欢使用它...
waitForTextPresent The passed in variable is ${myVariable}
即使世界传递一个环境没有问题(即SeleniumTestBaseUrl是什么),但我无法将任何其他特定环境传递到我的Selenium-IDE脚本中。
谢谢!
尝试将其设置为环境变量:
set myVariable=$(environmentSpecificVar) && java -jar selenium-server.jar -htmlSuite *firefox $(SeleniumTestBaseUrl) myTestSuite.html
见detailes here。
设置环境变量似乎可行,但我无法在脚本中使用它 - 我还没有找到一个selenium命令来捕获环境变量。 – GoatInTheMachine 2011-04-20 12:56:47
既然你正在运行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访问。 – GoatInTheMachine 2011-04-26 10:59:28
以下命令将允许您从Selenium IDE中检索一些环境变量。如果您使用* firefox作为浏览器,这也适用于Selenium RC。
Command: storeEval
Target: Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME');
Value: username
参考:Finding the currently logged in user from a Firefox extension
的关键是硒参数-userExtensions
首先,让脚本创建一个临时的js文件(在这种情况下获得一个詹金斯参数):
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"
在我testfile的则有可能通过storeEval得到变量:
<tr>
<td>storeEval</td>
<td>myvariable</td>
<td>myvariable</td>
</tr>
<tr>
<td>echo</td>
<td>${myvariable}</td>
<td></td>
</tr>
我采用XmlPoke'ing相应的变量到脚本的格外讨厌policiy,因为没有别的似乎工作。 – GoatInTheMachine 2011-04-26 11:00:04