Watin不能从选择列表中选择一个选项
Watin can't select an option from a select list
我使用WATIN来完成一个动态创建的表单,它可以包含几个SelectLists(这些是javascript控制的拾取列表)。输出的选择列表格式示例为;
<select title=" " style="width: 300px;"
name="NameHere"
data-bind="value: NameHere.AnswerCode"
class="fieldInputElement pickList">
<option selected="" value=""></option>
<option class="answerswerTextWithNote" value="A">alpha</option>
<option class="answerswerTextWithNote" value="B" data-guidance="E.g. minor ">bravo</option>
<option class="answerswerTextWithNote" value="C" data-guidance="E.g. b">charlie</option>
<option class="answerswerTextWithNote" value="C" data-guidance="E.g. c">chatlie</option>
</select>
不幸的是,watin似乎无法选择列表和任何选项,返回一个错误。
的代码window.SelectList(Find.ByName("NameHere")).Options[2].Select();
返回关于索引的错误,尽管
string y = window.SelectList(Find.ByName("NameHere")).Option(x[1].ToString()).ToString();
将为索引选项分配正确的值。
有没有人能告诉我如何触发选择,因为我已经尝试了focus()和keydown都没有快乐。
selectlist是使用' selected '插件,如果这有帮助吗?
下面的内容有些不好看....但是…它的工作原理。
使用- IE8 WatiN 2.0
- NUnit
- 这里选择的例子:http://davidwalsh.name/dw-content/jquery-chosen.php
我无法重现您的索引错误;我可以通过索引访问SelectList选项而不会出现问题(参见下面的代码)。但是…访问它们没有帮助,因为Chosen有自己的表示标记。
所以,我用选择的HTML元素代替SelectList,事情工作得更好。
[Test]
public void ChosenTest()
{
IE myIE = new IE(true);
myIE.GoTo("http://davidwalsh.name/dw-content/jquery-chosen.php");
myIE.SelectList(Find.ByClass("chosen chzn-done")).WaitUntilExists(); //Needed as sometimes the controls were not fully loaded; unable to get item not found exceptions once this was added.
Console.WriteLine("ByIndex:" + myIE.SelectList(Find.ByClass("chosen chzn-done")).Options[3].Text); //To show no index out of bounds error.
// Just for reference --> myIE.SelectList(Find.ByClass("chosen chzn-done")).Options[3].Select(); //Has no effect.
string id = myIE.SelectList(Find.ByClass("chosen chzn-done")).Id;
myIE.Div(id + "_chzn").Div(Find.ByClass("chzn-drop")).ElementWithTag("li", Find.ByIndex(3)).Click();
myIE.Div(id + "_chzn").Links[0].Spans[0].Click(); //Needed or the SelectList-ish stays open.
}
查找ByClass是在示例页面上控件id更改时完成的。WaitUntilExists消除了间歇性故障。
相关文章:
- 从a-z中随机选择一个字母
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 在下拉列表中选择一个选项的值
- 在类JavaScript选择的另一个元素中选择一个标记元素
- Jquery:当两个或多个条件为true时,选择一个元素
- 可以使用createRange选择一个空范围
- 选择一个元素,使其最近的具有特殊属性的父元素具有特殊值
- 使用 Jquery 选择一个 td 元素
- 当使用jQuery/Javascript选择一个多选时,如何使所有值都不被选中:
- 在一组复选框中,一次只允许选择一个
- 如何强制用户从下拉列表和按钮中选择一个值以启用保存按钮
- 从数组中选择一个变量
- 正在读取<p: 选择一个菜单/>在onchange回调中
- 在输入字段中选择一个值,然后用相应的数据填充另一个字段
- 如何以编程方式在 jsTree 中选择一个节点并打开所有父节点
- Asp.net 引导下拉菜单 - 选择一个项目
- 如何根据 jsp 中数据库中的值在下拉列表中选择一个值
- 通过硒选择一个javascript下拉列表
- 选择一个从 mysql 返回选中/未选中复选框的对象
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页