net / watin应用程序,我正在尝试从客户端网站上的组合框中选择项目。我可以使用watin删除列表并从列表中选择(highlite)一个项目,但所选项目不会填充上面的文本框。似乎watin的.select()没有触发事件来触发。
我可以通过在组合框中写入项目的第一个字母并使用超文本功能选择项目来解决这个问题,但这并不理想。
有人可以指出为什么以下代码不会填充组合框? 感谢
以下是应该选择组合框项目的代码:
'***Find combobox frame
Dim ie_tabWell1 As Frame
ie_tabWell1 = ie.Frame(Find.ById("sframeInner")).Frame(Find.ById("wellFrame")).Frame(Find.ById("tabWell1"))
'*** Drop down the list (Not really needed)
ie_tabWell1.TextField(Find.ById("ctlMaritalStatusText__")).ClickNoWait()
'ie_tabWell1.Span(Find.ByValue("Single")).Focus()
'*** Select the list item (Selects an item but dosn't populate the combobox)
ie_tabWell1.SelectList(Find.ById("ctlMaritalStatusList__")).Option(Find.ByText("Single")).Select()
ie_tabWell1.TextField(Find.ById("ctlMaritalStatusText__")).Refresh()
答案 0 :(得分:0)
我认为问题是由应用程序触发列表填充的原因引起的,即它们触发了WatiN在单击项目时未触发的事件。
我们遇到了类似的问题,我们需要找到该项目,然后专注于该项目,然后单击鼠标单击以正确激活该事件。
另一种方法是调用document.eval方法来自己激活javascript事件,但是这开始使得正在测试的应用程序有点过分恕我直言。
答案 1 :(得分:0)
我的代码与你的代码非常相似并且遇到了同样的问题
ie.SelectList(“drpmcCreateVisitTypeSelect”)。选项(“CARDIOLOGY CONSULTATION”)。选择();
但是在将此添加到我的代码段后,我得到了预期的行为,我们需要触发Click()事件以将项目选为
ie.SelectList(“drpmcCreateVisitTypeSelect”)。选项(“CARDIOLOGY CONSULTATION”)。点击();