Тестирование события изменения jQuery с помощью Watij - PullRequest
1 голос
/ 01 марта 2010

У меня есть список выбора, в котором событие изменения было привязано к элементу с помощью jQuery .Примерно так:

$("#someId").change(function() {..});

Когда кто-то выбирает новую опцию в списке выбора, другая часть пользовательского интерфейса будет меняться соответственно.Теперь это работает нормально, когда я использую мышь и щелкаю, однако, когда я использую Watij для написания своих тестов, мне нужно событие jQuery change, которое не выполняется.

Тест Watij правильно выберет требуемую опцию выбора, но фактическое событие не запускается.Я пытался позвонить fireevent("change"); и fireevent("onchange"); безрезультатно.Я также попробовал ie.sendKeys("{ENTER}"); и ie.sendKeys("{TAB}");, что, похоже, тоже не сработало.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 10 марта 2010

Используйте $('#someId').trigger('change');, чтобы вызвать событие вручную.

См. Документацию для trigger () .

1 голос
/ 02 марта 2010

Единственное решение, которое я нашел, - это откатить версию jQuery, которая используется. В настоящее время я использую версию 1.4.1 (оскорбительная версия в отношении тестируемости события изменения в полях выбора), и после возврата к версии 1.2.6 проблема исчезает.

0 голосов
/ 13 марта 2010

Когда значение combo / list изменяется с помощью скрипта, onchange не должен запускаться. Я не знаю, как Ватиж это делает, но это один случай.

Второе - это то, что Watij работает с IE (до тех пор, пока википедия прав), а IE ставит вместо вашего списка или комбо системный элемент управления, и это может что-то сломать. Попробуйте обновить до IE8, который имеет чуть лучшую реализацию компонентов формы (например, select наконец-то поддерживает атрибут «disabled» в опциях через 10 лет)

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

...