Как я тестирую, какой элемент имеет фокус в Селене RC?
Мне не удалось заставить идею псевдокласса : focus
работать, не знаю почему - таргетинг css = # search_input input.text
соответствует, но css = # search_input input.text: focus
нет? Но вот что у меня сработало:
self.assertEquals(self.se.get_element_index('dom=document.activeElement'),
self.se.get_element_index('//input[@id="search-query"]'))
Здесь используется Python Selenium API , поэтому вызовы get_element_index ()
являются оболочкой вокруг основного списка команд Selenium. Адаптируйте это к своей среде. Он оценивает индекс элемента сфокусированного элемента документа (полученный с помощью локатора DOM Javascript) и индекс элемента элемента, который вы хотите проверить на фокус (полученный с помощью локатора XPath). Также см. этот вопрос .
Вы можете использовать селекторы CSS при предоставлении указателя элемента для Selenium: http://release.seleniumhq.org/selenium-core/1.0/reference.html#locators
Поэтому , вы можете использовать псевдокласс CSS : focus
в вашем селекторе, чтобы соответствовать только в том случае, если элемент находится в фокусе.
Объедините это с действием verifyElementPresent
и целью примерно следующего вида: css = .yourclassname: focus
. Замените yourclassname
на имя вашего класса CSS, конечно, или используйте один из других селекторов CSS; важный бит - это : focus
в конце.
Обратите внимание, что это почти наверняка не будет работать в плагине Selenium IDE Firefox . Я полагаю, это потому, что этот плагин вместо этого будет иметь фокус. Я не мог заставить его работать в IDE (тест всегда терпел неудачу), но он работал нормально, когда я экспортировал его и запускал как тест Java.
HTH
Сэм