在列表中选择选项后,Watin不要更新按钮

时间:2014-06-18 19:19:15

标签: c# watin

我尝试在以下html中选择一个选项:

<select class="gwt-ListBox" style="" gwtdebugid="signup-flow-choose-timezones">
   <option value="">Ahora seleccione una zona horaria:</option>
   <option value="">------</option>
   <option value="Pacific/Honolulu">(GMT-10:00) Hora de Hawai</option>
   <option value="America/Anchorage">(GMT-09:00) Hora de Alaska</option>
   <option value="America/Los_Angeles">(GMT-08:00) Hora del Pacífico</option>
   <option value="America/Denver">(GMT-07:00) Hora de las Montañas Rocosas</option>
   <option value="America/Phoenix">(GMT-07:00) Hora de las Montañas Rocosas - Arizona</option>
   <option value="America/Chicago">(GMT-06:00) Hora central</option>
   <option value="America/New_York">(GMT-05:00) Hora del Este</option>
</select>

如果选择此选项,则通过点击例如在网页中启用一个按钮。 我尝试使用以下代码进行选择:

var option = ie.SelectList(Find.By("gwtdebugid", s => s.Equals("signup-flow-choose-timezones"))).Options[3];
option.Select();
option.Change();

但是使用此代码,按钮仍处于禁用状态,没有任何反应。

我尝试使用Watin中的Eval()函数运行JQuery代码,方法如下:

ie.DomContainer.Eval("$('select.gwt-ListBox').change();");

但我得到以下例外:

ReferenceError: '$' is not defined.

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这是我怎么做的

//My drop down list
SelectList ddlAccounts = ie.SelectList(Find.ById("ddlClientNumbers_m_ddl"));    
//here i select option that i need
ddlAccounts.Options[i].Select();
//Or select by value your case
ddlAccounts.SelectByValue("Pacific/Honolulu");

您可以添加以确保浏览器已完成加载

 ie.WaitForComplete();

购买我认为你在另一个地方有问题,如果你在Frame中按钮而不是在ie,播种意味着你需要在每次ddlAccounts.Options[i].Select();之后加载你的框架

Frame yourFrame = ie.Frame(Find.ById("id"));
SelectList ddlAccounts = ie.SelectList(Find.ById("ddlClientNumbers_m_ddl"));    
ddlAccounts.SelectByValue("Pacific/Honolulu"); 
//and load frame again
yourFrame = ie.Frame(Find.ById("id"));

您可以找到更新的按钮