Watin不会手动触发.change()事件

时间:2014-09-11 10:53:22

标签: c# javascript watin

我有一个选择列表:

<select style="ime-mode: auto; background-color: rgb(255, 255, 255);" id="il_worksheettype" class="ms-crm-SelectBox" tabIndex="1100" name="il_worksheettype" attrPriv="7" attrName="il_worksheettype" req="2" defaultSelected="null">
<option title="" selected="selected" value=""></option>
<option title="Underwriting" value="102790001">Underwriting</option>
<option title="Claim" value="102790000">Claim</option></select>

我有代码:

worksheetTypes.Option("Claim").Select();
ProtectionInfoTab.Frame(Find.ById("contentIFrame")).Eval("$('#il_worksheettype').change();");

问题在于,由于某些原因它只是不运行javascript或者至少这是我得到的印象。当这段代码没有抛出异常时,它似乎没有做任何事情,因为它应该在另一个选择列表上显示选项。

任何想法?

3 个答案:

答案 0 :(得分:1)

使用RunScript代替EvalEval似乎绑定了更改,但不会触发更改。

RunScript为我工作,其中pk是元素参考。

Element pk = BrowserInstance.TextField("password");    
pk.DomContainer.RunScript("$('#" + pk.Id + "').change();");    

答案 1 :(得分:0)

在您的Eval语句中,您的更改函数用于绑定事件而不是触发事件。要触发事件,请使用以下命令:

$(&#39;#il_worksheettype&#39)触发。(&#39;变更&#39);

http://api.jquery.com/change/

答案 2 :(得分:0)

从选择列表中选择一个选项后,您可以使用IE的以下代码触发更改事件。

browserInstance.RunScript("$('#il_worksheettype').change()");

对于firefox

browserInstance.RunScript("window.$('#il_worksheettype').change()");
相关问题