我有一个选择列表:
<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或者至少这是我得到的印象。当这段代码没有抛出异常时,它似乎没有做任何事情,因为它应该在另一个选择列表上显示选项。
任何想法?
答案 0 :(得分:1)
使用RunScript
代替Eval
。 Eval
似乎绑定了更改,但不会触发更改。
RunScript
为我工作,其中pk
是元素参考。
Element pk = BrowserInstance.TextField("password");
pk.DomContainer.RunScript("$('#" + pk.Id + "').change();");
答案 1 :(得分:0)
在您的Eval语句中,您的更改函数用于绑定事件而不是触发事件。要触发事件,请使用以下命令:
$(&#39;#il_worksheettype&#39)触发。(&#39;变更&#39);
答案 2 :(得分:0)
从选择列表中选择一个选项后,您可以使用IE的以下代码触发更改事件。
browserInstance.RunScript("$('#il_worksheettype').change()");
对于firefox
browserInstance.RunScript("window.$('#il_worksheettype').change()");