0

我的表单中有一个组合框,我希望每次测试用例运行时 selenium ide 从组合框列表中选择一个随机值。

在硒中,我有这个:

Command: store
Target: javascript{Math.floor(Math.random())}
Value: man

并在下一步中:

Command: select
Target: id of combo box
Value: ${man}

但是当我运行测试用例时;它会产生一个错误:

'[错误] 未找到标签为 '0' 的选项'。

我怎样才能完成这项任务。

4

1 回答 1

1

您的 java 脚本代码始终将结果显示为 0。您的 java 脚本需要稍作更改才能正常工作。使用以下代码,

命令: store目标: javascript{Math.floor(Math.random()*3)}值: man

这将在每次运行时给出一个介于 0 到 2 之间的随机值。公式中使用的值 3 是一个变量,它代表 ComboBox 中项目的计数。如果 ComboBox 中有 6 个项目,则必须将 3 替换为 6。

下一行是根据 id 值选择一个 ComboBox 项,

命令:选择目标: css=select值: id=${man}

但是有一个问题,为了使它起作用,所有标签中都应该有一个 id 属性,其增量数值为 0,1,2,..etc。

例如,

<select>
  <option id="0">Milk</option>
  <option id="1">Tea</option>
  <option id="2">Coffee</option>
</select>

或者让它以你写的方式工作,即,

命令:选择目标: css=select值: ${man}

那么 ComboBox 应该具有从 0、1、2、3 等递增的值。例如,HTML 代码将如下所示,

<select>
  <option>0</option>
  <option>1</option>
  <option>2</option>
</select>

更新


根据您的最新回复,我修改了公式并且它有效,

命令: storeEval目标: {var myList=new Array(111,222,333,444,888,999,555,777,221,"ADA","AD"); myList[Math.floor(Math.random()*11)]}值: myListVal

命令:选择目标: css=select值: ${myListVal}

细节

{var myList=new Array(111,222,333,444,888,999,555,777,221,"ADA","AD"); myList[Math.floor(Math.random()*11)]}

  1. 创建了一个 Array myList并将其与列表中所需的值一起存储。
  2. 由于有 11 个列表项,我创建了一个公式 Math.floor(Math.random()*11),它将随机生成从 0 到 10 的值。
  3. 当从 Selenium-IDE 执行时,myList数组的索引值会从 0 到 10 随机变化。这将导致 myList 的数组值不同,存储到变量myListVal中。
于 2013-03-21T14:18:13.650 回答