Watin赢得';t手动触发.change()事件
本文关键字:change 事件 赢得 Watin | 更新日期: 2023-09-27 18:21:33
我有一个选择列表:
<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,或者至少这是我得到的印象。当这段代码没有抛出异常,但当它应该在另一个选择列表上显示选项时,它似乎什么都没做。
有什么想法吗?
使用RunScript
而不是Eval
。Eval
似乎绑定了更改,但没有触发更改。
RunScript
对我有用,其中pk
是元素引用。
Element pk = BrowserInstance.TextField("password");
pk.DomContainer.RunScript("$('#" + pk.Id + "').change();");
在Eval语句中,更改函数用于绑定事件,而不是触发事件。要触发事件,请使用以下命令:
$('#il_worksheettype').trigger('change');
http://api.jquery.com/change/
从选择列表中选择一个选项后,您可以使用下面的IE代码来触发更改事件。
browserInstance.RunScript("$('#il_worksheettype').change()");
对于firefox
browserInstance.RunScript("window.$('#il_worksheettype').change()");