Как проверить, какой элемент находится в центре внимания Selenium RC? - PullRequest
3 голосов
/ 29 июня 2010

Как проверить, какой элемент имеет фокус в Selenium RC?

Ответы [ 4 ]

4 голосов
/ 29 июня 2010

Следующий локатор должен выбрать активный элемент в документе:

dom=document.activeElement

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

3 голосов
/ 29 июня 2010

Как упоминает AlistairH, вы можете использовать document.activeElement в большинстве современных браузеров.Чтобы использовать это в Selenium, вы можете сохранить активный элемент и сравнить его с активным элементом.Ниже приведен пример для Selenium IDE, который также должен указывать правильное направление для Selenium RC.

storeEval | this.browserbot.findElement("name=targetElement").id; | targetElement
storeEval | this.browserbot.getUserWindow().document.activeElement.id; | activeElement
verifyEval | '${targetElement}' | ${activeElement}

Обратите внимание, что в приведенном выше примере указан уникальный элемент id.

2 голосов
/ 24 августа 2011

Еще один способ тестирования (при условии, что вы используете JQuery или Sizzle) - использовать простую библиотеку, которую я написал, которая позволяет тестам Selenium запрашивать DOM с помощью селектора: focus, например .is (': focus') или $ (': фокус').

Для получения дополнительной информации см. http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or, где я объясняю причину, по которой тест Selenium для: focus не работает из коробки, и как это исправить.

1 голос
/ 29 июня 2010

исходный код:

код селена: 1 метод: String searchValue = selenium.getEval ("var test = document.activeElement;");

2 метод: String testvalue = selenium.getText ("css = # div textarea [class = 'left_to_right']: focus");

...