【问题标题】:Pass variable to Selenium-IDE script将变量传递给 Selenium-IDE 脚本
【发布时间】:2011-08-09 09:45:29
【问题描述】:

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 脚本中。

谢谢!

【问题讨论】:

  • 我采用了 XmlPoke 将适当的变量添加到脚本中的异常讨厌的策略,因为其他任何方法似乎都不起作用。

标签: msbuild selenium selenium-ide


【解决方案1】:

以下命令将允许您从 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

【讨论】:

    【解决方案2】:

    关键是 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>
    

    【讨论】:

      【解决方案3】:

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

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

      详见here

      【讨论】:

      • 设置环境变量似乎可行,但我无法在我的脚本中使用它 - 我没有找到用于捕获环境变量的 selenium 命令。
      【解决方案4】:

      由于您正在运行 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 访问。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2021-08-10
      • 2021-08-14
      • 2012-11-15
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多