Событие фокуса Selenium IDE не срабатывает, если окно не активно - PullRequest
3 голосов
/ 05 октября 2009

Я добавил этот код на свою веб-страницу:

<input id='argh' type='text' onfocus='this.value=7'>

Если окно браузера не активно, событие фокусировки, похоже, не запускается (с помощью команды 'focus') из Selenium:

# [info] Executing: |waitForElementPresent | argh | |
# [info] Executing: |focus | argh | |
# [info] Executing: |verifyValue | argh | 7 |
# [error] Actual value '' did not match '7'

Успешно работает, если окно отображается во время тестирования. Кроме того, если я активирую окно браузера после вышеуказанного сбоя, #argh фокусируется и заполняется семью, затем я возвращаюсь в Selenium и перезапускаю строку, это успешно. (Вероятно, очевидно, но ...)

Что я делаю не так? Как я смогу протестировать такие вещи, как выпадающие меню AJAX от Selenium без отображения браузера?

Моя установка - Selenium IDE 1.0.2 в Firefox 3.5.3 в win32.

Ответы [ 2 ]

4 голосов
/ 05 октября 2009

Имеет ли значение, если вы используете команду fireEvent?

fireEvent | argh | focus
1 голос
/ 24 августа 2011

Во-первых, событие фокусировки срабатывает при использовании Selenium. Однако, поскольку браузер, которым управляет Selenium, обычно не имеет фокуса в операционной системе, браузер НЕ будет рассматривать какие-либо элементы, имеющие фокус, пока браузер не восстановит фокус.

Я потянул за это волосы, поэтому нашел решение этой проблемы. Смотри http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or для полного объяснения проблемы и решения этой проблемы.

Если вас не могут заставить прочитать длинное объяснение, просто включите https://gist.github.com/1166821 ДО того, как вы включите JQuery, и используйте $ (': focus'), чтобы найти элемент, имеющий фокус, или .is ( ': focus'), чтобы проверить, имеет ли элемент фокус.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...