Перейти к содержимому

Фотография

Меняющиеся локаторы Xpath


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 dolkons

dolkons

    Новый участник

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 31 января 2014 - 08:33

Здравствуйте. Пишу автотест для веб-приложения.

Суть автотеста в том, что нужно щелкать по кнопкам, смотреть, какая реакция, потом делать refresh страницы, и все по новой.

Но возникает одна проблема. Локаторы Xpath элементов постоянно меняются, соответственно тест не всегда отрабатывает. 

Подскажите, как поступать в таком случае? Есть ли какие-нибудь советы? Не хотелось бы каждый раз перед новым тестом заново вбивать Xpath всех элементов.

Заранее спасибо.


  • 0

#2 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 31 января 2014 - 08:41

Вариантов множество:

1) использовать регулярные выражения при формировании xpath

2) привязываться к кнопке по её тексту

3) привязываться к не самой кнопке, а допустим подняться на уровень выше и посмотреть может, там есть какой-нибудь статический элемент и от него уже пытаться привязаться к кнопке

4) и ещё куча вариантов

 

Зы. вообщем пример страницы в студию)


  • 0

#3 Petrov.Sergey

Petrov.Sergey

    Опытный участник

  • Members
  • PipPipPipPip
  • 446 сообщений
  • ФИО:Petrov Sergey
  • Город:МО, Лобня


Отправлено 31 января 2014 - 09:06

Здравствуйте. Пишу автотест для веб-приложения.

Суть автотеста в том, что нужно щелкать по кнопкам, смотреть, какая реакция, потом делать refresh страницы, и все по новой.

Но возникает одна проблема. Локаторы Xpath элементов постоянно меняются, соответственно тест не всегда отрабатывает. 

Подскажите, как поступать в таком случае? Есть ли какие-нибудь советы? Не хотелось бы каждый раз перед новым тестом заново вбивать Xpath всех элементов.

Заранее спасибо.

Вы бы хоть привели пример того, как меняются локаторы. Например, кусок кода "что было" и кусок кода "что стало после рефреша".

А то для абстрактных проблем абстрактные и решения.


  • 0
Форум читаю набегами. По возникшим вопросам можно в скайп (в профиле).

#4 dolkons

dolkons

    Новый участник

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 31 января 2014 - 09:08

HTML - код кнопки, по которой я хочу щелкнуть такой: 

<div class="EditControlsButton EditControlsButton_CreateMapItemActive olButton"></div>

Ее Xpath: 

//*[@id="OpenLayers_Control_Panel_410"]/div[1]

И вот в данном случае цифра в конце Xpath - 410. Но она постоянно меняется.


  • 0

#5 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 31 января 2014 - 09:11

"Ее xpath" может быть написан пару десятками вариантами. Ваш вариант не удачный.


  • 0

#6 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 31 января 2014 - 09:12

div.EditControlsButton.EditControlsButton_CreateMapItemActive.olButton

или

div[class*='EditControlsButton_CreateMapItemActive']


  • 0

#7 dolkons

dolkons

    Новый участник

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 31 января 2014 - 09:19

А как сформировать полную строку запроса по приведенным выше строкам?

Я новичок, поэтому заранее извиняюсь за глупые вопросы :)


  • 0

#8 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 31 января 2014 - 09:24

Изучить XPath - XML Path Language.

 

http://www.w3.org/TR/xpath/

http://www.w3schools.com/xpath/


  • 0

#9 Dalay_LAMO

Dalay_LAMO

    Опытный участник

  • Members
  • PipPipPipPip
  • 265 сообщений
  • ФИО:Дмитрий
  • Город:Санкт-Петербург


Отправлено 31 января 2014 - 09:53

Весьма доступные примеры по xpath - http://www.zvon.org/...l/examples.html


  • 0

#10 dolkons

dolkons

    Новый участник

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 31 января 2014 - 13:26

Спасибо всем. Буду изучать :)


  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных