WatIn为选择列表添加新选项?

时间:2011-06-17 23:08:53

标签: c# list watin selectlist

我需要在我的一个单元测试中为selectList添加一个新选项,我无法弄清楚如何去做。

Dropdown目前有2个选项,我想添加第三个选项,然后使用它。

我尝试使用http://stevenharman.net/blog/archive/2007/07/10/add-option-elements-to-a-select-list-with-javascript.aspx作为基础进行JavaScript注入,但失败了。我得到了每次都崩溃IE浏览器的异常,并且“RunScript failed”文本被打印到我的日志中,即使我在错误输出中没有使用该文本。

Watin可以吗?或者开源是否使我失败?

1 个答案:

答案 0 :(得分:0)

使用您提供的链接中的代码,只需进行一项小改动即可实现。

我的更改

  • 将ID更改为我的下拉列表的ID(当然!)
  • 将元素中的$更改为'document.getElementById'。使用$ in而不是我没有看到任何明显的错误或类似的东西;只是没有采取任何行动。

“新选项”作为最后一项添加到下拉列表中,它是所选项目。

string js = "";
js = js + "var theSelectList = document.getElementById('myDropDownID'); ";
js = js + " AddSelectOption(theSelectList, \"My Option\", \"123\", true);";
js = js + " function AddSelectOption(selectObj, text, value, isSelected) ";
js = js + "{";
js = js + " if (selectObj != null && selectObj.options != null)";
js = js + "{";
js = js + " selectObj.options[selectObj.options.length] = new Option(text, value, false, isSelected);";
js = js + "}}";

myIE.Document.Eval(js);

我的设置

  • WatiN 2.0
  • IE8
  • Win7的

检查下拉列表中有1个条目和2个条目;两种情况都添加了“我的选项”而没有问题。