繁体   English   中英

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

[英]Watin won't fire .change() event manually

我有一个选择列表:

<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语句中,您的change函数用于绑定事件而不是触发事件。 要触发事件,请使用以下命令:

$( '#il_worksheettype')的触发器( '变化')。

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

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

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

对于Firefox

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM