Как я тестирую, какой элемент имеет фокус в Селене RC?

Как я тестирую, какой элемент имеет фокус в Селене RC?

7
задан ThinkingStiff 30 June 2012 в 04:24
поделиться

2 ответа

Мне не удалось заставить идею псевдокласса : 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). Также см. этот вопрос .

2
ответ дан 7 December 2019 в 01:18
поделиться

Вы можете использовать селекторы 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

Сэм

1
ответ дан 7 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: