2011-01-26 3 views
1

Привет В настоящее время я тестирую, чтобы определить, имеет ли конкретное поле фокус при загрузке страницы. Я не мог найти нигде, как это сделать. В основном, что я хочу сделать, это проверить, имеет ли конкретный элемент на странице фокус. Есть ли встроенный метод для проверки этого?UI Test {Capybara + Cucumber]: Как проверить, имеет ли конкретное текстовое поле фокус

Спасибо.

ответ

1

document.activeElement дает это, но это свойство доступно только в современных браузерах.

1

Нет способа сборки, чтобы рассказать вам, что сосредоточено.

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

0

Лучший способ проверить, имеет ли элемент фокусировку с помощью JQuery, использовать команду .is (': focus') или выбрать элемент с фокусом, используя $ (': focus'). Однако с Capybara это невозможно, так как Capybara Webkit или Selenium ВСЕГДА расскажут вам, что все элементы не имеют фокуса, поскольку в момент тестирования у браузера не было фокуса в ОС.

Однако я нашел решение этой проблемы и разработал простой скрипт для устранения этой проблемы при выполнении ваших тестов. Проблема заключается в том, что пользовательский сопоставление вашего браузера и селектор запросов являются операционной системой, а это означает, что если ваш браузер и вкладка веб-страницы не имеют фокуса в операционной системе, селектор: focus не будет соответствовать ЛЮБЫМ элементам вашего документа. Я проговорил внутри JQuery, чтобы найти способ обойти это, и это можно сделать, просто заставив JQuery использовать Sizzle и не оптимизировать селекторные запросы, используя собственные функции браузера.

Если вы включили следующий сценарий https://gist.github.com/1166821 ПЕРЕД тем, как вы включите JQuery, ваши тесты Selenium пройдут: фокусные тесты.

Для полной записи до выпуска, решения и как запустить тесты, пожалуйста, ознакомьтесь http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or

Надежда, что помогает другим, которые имеют тот же самый вопрос.