1

net/watin 应用程序,我正在尝试从客户网站上的组合框中选择和项目。我可以使用 watin 下拉列表并从列表中选择(突出显示)一个项目,但所选项目不会填充上面的文本框。看起来 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()
4

2 回答 2

0

我的代码与您的代码非常相似并且遇到了同样的问题

ie.SelectList("drpmcCreateVisitTypeSelect").Option("心脏病咨询").Select();

但是在将它添加到我的代码片段后,我得到了预期的行为,我们需要触发 Click() 事件以将项目选为

ie.SelectList("drpmcCreateVisitTypeSelect").Option("心脏病咨询").Click();

于 2011-10-07T12:28:17.180 回答
0

我认为问题是由应用程序如何触发列表填充引起的,即它们触发了 WatiN 在单击项目时未触发的事件。

我们遇到了类似的问题,我们需要找到该项目,然后专注于它,然后用鼠标单击以正确触发事件。

另一种方法是自己调用 document.eval 方法来触发 javascript 事件,但是恕我直言,这开始与正在测试的应用程序搞混了。

于 2011-03-12T00:50:26.303 回答