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

时间:2013-03-21 12:22:19

标签: selenium combobox

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

在硒中我有这个:

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

并在下一步:

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

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

  

'[error]找不到标签'0'的选项'。

我该如何完成这项任务。

1 个答案:

答案 0 :(得分:1)

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

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

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

下一行是根据id值

选择一个ComboBox项

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

然而,有一个catch,为了使其工作,所有标签中应该有一个id属性,增量数值为0,1,2,..等。

例如,

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

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

命令:选择目标: css =选择值: $ {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 =选择值: $ {myListVal}

<强>详情

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

  1. 创建了一个数组 myList ,并将其与列表中所需的值一起存储。
  2. 由于有11个列表项,我创建了一个公式Math.floor(Math.random()* 11),它将随机生成0到10之间的值。
  3. 从Selenium-IDE执行时, myList 数组将随机改变从0到10的索引值。这将导致myList的数组值变化,存储为变量 myListVal