Предпочтение локаторов в Selenium RC - PullRequest
0 голосов
/ 07 июня 2011

Мне нужна помощь в выборе локаторов при написании сценария selenium ...

В чем разница между использованием XPath, CSS, идентификаторов? XPath предпочтительнее других?Если так, то почему?

Ответы [ 6 ]

3 голосов
/ 07 июня 2011

Порядок, который вы должны попробовать выбрать локаторы, находится в следующем порядке

  1. ID
  2. Имя
  3. CSS
  4. XPATH

ID и имя помогут создать хорошие поддерживаемые тесты, потому что типы элементов могут быть изменены без нарушения теста.Например, если вы нажали на <input type=button id='foo'>, и его значение изменилось на <div id='foo'>Bar</div>, тогда ваши тесты будут работать, пока то, что произошло дальше, будет в том же порядке

1 голос
/ 07 июня 2011

CSS будет моим выбором по скорости выполнения и удобочитаемости / ремонтопригодности. Кроме того, локаторы CSS, вероятно, являются свидетелями наименьшего количества изменений в итеративной среде (в отличие от изменения имен ссылок, подписей и т. Д.). Единственным недостатком использования CSS является отсутствие встроенной поддержки в среде IDE для их формулирования.

Здесь - отличный пост, объясняющий, почему CSS является локатором выбора:)

1 голос
/ 07 июня 2011

Xpath обычно медленный, особенно в IE. Селекторы CSS поддерживаются не во всех браузерах, особенно в IE (здесь виден тренд?). Обычно используйте селекторы имен или идентификаторов там, где это возможно, поскольку они быстрые, и делайте резервные копии с помощью селекторов xpath там, где это невозможно. Написание хороших селекторов xpath - это навык, если вы заметили, что это приводит к тому, что ваши тесты начинают сильно тормозить, вы, вероятно, можете вернуться и оптимизировать селекторы.

0 голосов
/ 24 марта 2016

Порядок выбора локаторов должен быть:

  1. Id: Если веб-приложение следует рекомендациям W3C, вы получите только один элемент на странице. Следовательно, скорость поиска элемента будет максимальной.
  2. Имя
  3. Текст ссылки
  4. Текст частичной ссылки
  5. Имя тега
  6. Имя класса
  7. CSS селектор
  8. Xpath
0 голосов
/ 15 июня 2011

Привет, просто чтобы добавить немного больше, 1).ID или NAME являются родными для браузера, а все остальные CSS, XPATH, Javascript чужды браузеру (т.е. они должны полагаться на свои соответствующие движки).поэтому родной всегда первый выбор.2).Вы не можете использовать все функции CSS или XPATH (т. е. проблемы с поддержкой браузером различных версий CSS или XPATH).3).XPATH проблематичен с IE7.(поэтому я должен был написать путь расположения каждого элемента, используя только CSS) 4).IE7 иногда не может найти очень простой путь CSS (css = table.nav td.name), поэтому мне пришлось изменить его на кодировку javascript (dom = document.findElementsByTagName ('td') [0])

0 голосов
/ 09 июня 2011

Хотя три других ответа, таким образом, все предоставляют важную информацию по аспектам вашего вопроса, есть еще один ресурс, который вы можете найти полезным. Недавно я собрал кулинарную книгу и сравнительную таблицу, охватывающую все технологии локаторов, поддерживаемые Selenium: этот краткий справочник буквально позволяет увидеть «... различия между использованием XPath, CSS, идентификаторов» и многим другим. См. XPath, CSS, DOM и Selenium: Розеттский камень на Simple-Talk.com.

...