Не могу выбрать элемент из раскрывающегося списка выбора с помощью vb.net

net/watin, и я пытаюсь выбрать элемент из поля со списком на веб-сайте клиента. Я могу использовать watin, чтобы открыть список и выбрать (выделить) элемент из списка, но выбранный элемент не будет заполнять текстовое поле выше. Похоже, что .select() watin не запускает событие.

Я могу обойти это, написав первую букву элемента в поле со списком и используя функцию гипертекста для выбора элемента, но это не идеально.

Может кто-нибудь указать, почему следующий код не заполняет поле со списком? Спасибо

Вот код, который должен выбрать элемент списка:

    '***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()

person kenmtb    schedule 11.03.2011    source источник


Ответы (2)


Я думаю, что проблема вызвана тем, как приложение запускает заполнение списка, то есть они запускают событие, которое WatiN не запускает при нажатии на элемент.

У нас была аналогичная проблема, и нам нужно было найти элемент, затем сфокусироваться на нем, а затем щелкнуть мышью, чтобы правильно запустить событие.

Другим способом было бы вызвать метод document.eval для запуска события javascript самостоятельно, однако это начинает мешать тестируемому приложению слишком много ИМХО.

person Bruce McLeod    schedule 12.03.2011
comment
Запоздалое спасибо. Я смог использовать object.keypress(character), чтобы заставить раскрывающийся список реагировать на реакцию, как будто данные поступают с клавиатуры. - person kenmtb; 13.06.2012

У меня был мой код, очень похожий на ваш, и у меня была та же проблема.

ie.SelectList("drpmcCreateVisitTypeSelect").Option("КОНСУЛЬТАЦИЯ КАРДИОЛОГИИ").Select();

Но после добавления этого в мой фрагмент я получил ожидаемое поведение, нам нужно запустить событие Click(), чтобы выбрать элемент как

ie.SelectList("drpmcCreateVisitTypeSelect").Option("КОНСУЛЬТАЦИЯ КАРДИОЛОГИИ").Click();

person Srivastava    schedule 07.10.2011