Watin- не может выбрать элемент из выпадающего списка, используя vb.net - PullRequest
1 голос
/ 11 марта 2011

net / 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()

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

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

ie.SelectList ("drpmcCreateVisitTypeSelect"). Option ("CARDIOLOGY CONSULTATION"). Select ();

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

ie.SelectList ("drpmcCreateVisitTypeSelect"). Option ("CARDIOLOGY CONSULTATION")) .Нажмите ();

0 голосов
/ 12 марта 2011

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

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

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

...