Я использую WatiN для опроса раскрытия автозаполнения.Autocomplete DropDown Menu Тестирование с использованием WatiN
Когда пользователь вводит в поле после ввода 3 символов, запускается автозаполнение jquery и отображается неупорядоченный список. Пользователь должен выбрать из списка.
Я не могу сделать выбор/запуск автозаполнения из списка с помощью WatiN.
Вот некоторые из HTML использовали разработчики:
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; display: block; width: 275px; top: 301px; left: 262px; ">
<li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1">ABC DEFGHIJ </a></li>
<li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1">ABC KLMNOPQ </a></li>
</ul>
Они используют JQuery UI автозаполнения виджета: http://jqueryui.com/demos/autocomplete/
погуглить для тестирования автозаполнения JQuery UI, я нашел этот переполнением стека Q & A: Testing JQuery autocomplete ui with cucumber
содержащий информацию, которая, по-видимому, является важной информацией: «Сначала необходимо вызвать курсор мыши, затем щелчок»
Тогда я Googled для WatiN при наведении курсора мыши, и нашел http://blogs.telerik.com/testing/posts/08-05-29/how_to_select_radcombobox_item_with_watin.aspx Это небольшой пример кода, который включает в себя:
Div divStudent3 = ie.Div(Find.ById("idRadComboBox_c2"));
divStudent3.FireEvent("onmouseover");
divStudent3.Click();
(быть ясно, что наш код разработки не использует Telerik контролирует это просто пример)
в этот момент я думал, что у меня был план, как управлять этим:
- Тип часть требуемого значения в поле (например, «ABC»)
- Найти
<ul>
элемент с классом «UI-автозаполнения» и стиль «блок» дисплей, ожидая, пока он присутствует - Внутри этого
<ul>
элемента, найти<li>
элемент, текст нужное значение (например, «ABC DEFGHIJ») - Пожарные «OnMouseOver» событие на этом
<li>
элемента - Нажмите
<li>
элемент.
Я нашел две проблемы: во-первых, набрав WatiN в в поле ввода было очень плохо вызывая появление меню автозаполнения, и во-вторых, что при нажатии на пункт меню не вызывает происходить автозаполнения.
Я обнаружил, что отправка события с пустым знаком в поле ввода поощряла отображение меню, но не вызывало высвечивание пункта верхнего уровня (тогда как при вводе вручную и нажатии на стрелку вниз оно появляется). Правильное включение элемента меню (включая получение его идентификатора, установленного в ui-active-menuitem) может быть недостающим звеном здесь.
Может ли кто-нибудь помочь мне понять и решить две проблемы, о которых я упомянул?
Это решило проблему. Спасибо. Он не отображает выделение элемента в списке, поскольку он его выбирает (я еще раз посмотрю на это), но он правильно выбирает элемент :) – ghb82
Также здесь есть дополнительная информация: http: /forum.jquery.com/topic/functional-testing-autocomplete-widget-with-watin-watir. Также было обнаружено, что если вы выполняете размытие через jquery на TextField, это также работает (на самом деле он не отображает список, хотя, возможно, это не так, как нужно). – Mark
помог с моей проблемой. благодаря – AceMark