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

Фотография

Элементы без ID на angular - element.click() xpath

xpath angular selenium

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

#1 Vikonder

Vikonder

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

  • Members
  • Pip
  • 31 сообщений

Отправлено 07 февраля 2018 - 19:39

Камрады!
 
Нужно отловить элементы для нажатия click() Selenium WebDriver +  Java
 
Прикрепленный файл  ScreenHunter_191 Feb. 07 21.21.jpg   5,74К   0 Количество загрузок:
 
прописаны они вот так...  Каждая ссылка по нажатию должна открывать свой таб с содержимым
 
<div class="i-sp-site-tabbox-tab" ng-click="events.goto('status')" ng-class="activeTab === 'status' ? 'active' : ''" style="">   Zone Status </div>
<div class="i-sp-site-tabbox-tab" ng-click="events.goto('summary')" ng-class="activeTab === 'summary' ? 'active' : ''">   Summary </div>

Раньше элементы прекрасно находились через xpath, как часть бегущей автомации.... пока эти строчки не были переписаны (как и весь FE в будущем) на angular 1.6

 

Пытался поймать их при помощи конструкций xpath

//div[@class='i-sp-site-tabbox-tab firepath-matching-node']
//div[contains(@class,'i-sp-site-tabbox-tab firepath-matching-node')]

общая конструкция -- //div[contains(@class,'i-sp-site-tabbox-tab')] выделяет все 3 элемента вмете

 

В статике они не подхватываются,  я  уже не говорю про динамику... Неужто angular не хочет дружить с Selenium??? 

 

Может посоветуете трюки для таких элементов без ID, чувствую вскоре это будет суперактуально для проекта...

За ссылки мудрые\обучающие ссылки по теме буду приблагодарен

 

спасибо


  • 0

#2 Alex

Alex

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

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 08 февраля 2018 - 06:07

 

Камрады!
 
Нужно отловить элементы для нажатия click() Selenium WebDriver +  Java
 
 
прописаны они вот так...  Каждая ссылка по нажатию должна открывать свой таб с содержимым
 
<div class="i-sp-site-tabbox-tab" ng-click="events.goto('status')" ng-class="activeTab === 'status' ? 'active' : ''" style="">   Zone Status </div>
<div class="i-sp-site-tabbox-tab" ng-click="events.goto('summary')" ng-class="activeTab === 'summary' ? 'active' : ''">   Summary </div>

Раньше элементы прекрасно находились через xpath, как часть бегущей автомации.... пока эти строчки не были переписаны (как и весь FE в будущем) на angular 1.6

 

Пытался поймать их при помощи конструкций xpath

//div[@class='i-sp-site-tabbox-tab firepath-matching-node']
//div[contains(@class,'i-sp-site-tabbox-tab firepath-matching-node')]

общая конструкция -- //div[contains(@class,'i-sp-site-tabbox-tab')] выделяет все 3 элемента вмете

 

В статике они не подхватываются,  я  уже не говорю про динамику... Неужто angular не хочет дружить с Selenium??? 

 

Может посоветуете трюки для таких элементов без ID, чувствую вскоре это будет суперактуально для проекта...

За ссылки мудрые\обучающие ссылки по теме буду приблагодарен

 

спасибо

 

Нужно видеть больше HTML (внутри какого тэга лежат эти два дива? какой именно тэг находится через //div[contains(@class,'i-sp-site-tabbox-tab')], что у него внутри?).

Там нет никаких кастомных тэгов?


  • 0

#3 TatyanaV

TatyanaV

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

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 08 февраля 2018 - 07:02

А если так

//div[contains(@class,'i-sp-site-tabbox-tab')][contains(text(),'Summary')]

?

Или css:

[ng-click*='summary']

Или css:

[ng-class*='summary']

 

Может быть у Вас есть контакт с разработчиками, можно попросить их добавить айдишники?


  • 0

#4 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 08 февраля 2018 - 10:25

общая конструкция -- //div[contains(@class,'i-sp-site-tabbox-tab')] выделяет все 3 элемента вмете

 Я возможно не очень понял проблему, но либо как вариант выше, либо, чтобы разделить 3 элемента, можно использовать скобки в конце, если ясен их порядок, например:

//div[contains(@class,'i-sp-site-tabbox-tab')][2]

  • 0

#5 Vikonder

Vikonder

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

  • Members
  • Pip
  • 31 сообщений

Отправлено 08 февраля 2018 - 16:27

Всем спасибо.... вывернулся вот так ---> //div[@class='i-sp-site-tabbox-tab' and contains(text(), 'Summary')]

 

ID - больное место нашего FE -- ну не хотят, собаки, это делать!!!


  • 0

#6 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 08 февраля 2018 - 20:01

Всем спасибо.... вывернулся вот так ---> //div[@class='i-sp-site-tabbox-tab' and contains(text(), 'Summary')]

 

ID - больное место нашего FE -- ну не хотят, собаки, это делать!!!

уже тогда такой локатор использовать. Он по крайней мере короче

//div[@class='i-sp-site-tabbox-tab'][contains(text(),'Summary')] чем

//div[@class='i-sp-site-tabbox-tab' and contains(text(), 'Summary')]


  • 0

#7 sergueik

sergueik

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

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 10 февраля 2018 - 16:56

попробуйте jprtracror - 

 
 
исакать по `binding` 

  • 1

#8 lapa

lapa

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

  • Members
  • Pip
  • 55 сообщений


Отправлено 13 февраля 2018 - 07:58

 

Всем спасибо.... вывернулся вот так ---> //div[@class='i-sp-site-tabbox-tab' and contains(text(), 'Summary')]

 

ID - больное место нашего FE -- ну не хотят, собаки, это делать!!!

уже тогда такой локатор использовать. Он по крайней мере короче

//div[@class='i-sp-site-tabbox-tab'][contains(text(),'Summary')] чем

//div[@class='i-sp-site-tabbox-tab' and contains(text(), 'Summary')]

 

хм, а чем так лучше?


  • 0

#9 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 13 февраля 2018 - 13:07

хм, а чем так лучше?

 

 

ничем, просто короче запись


  • 0



Темы с аналогичным тегами xpath, angular, selenium

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

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