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

Фотография

Локаторы: путь к классу внутри другого класса: как правильно?

CSS. Xpath

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

#1 tatyana_krivets

tatyana_krivets

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:Кривец Татьяна

Отправлено 10 декабря 2015 - 09:41

День добрый. 

 

У меня вопрос по поводу работы с локаторами, а именно:

 

В одном из "Уроков" был найден такой пример:

// Элемент имеет класс “news_list_slot” и находится внутри элемента c классом “news__list” , 
сайт - mail.ru
		//CSS: div[class='news__list'] div[class='news__list__slot']
		//Xpath: //div[@class='news__list']/div[@class='news__list__slot']

Вот только у меня так не работает. 

 

В моем случае класс находится внутри класса, который находится внутри класса... и так  - вот столько раз, сколько в примере (мой реальный пример):

List<WebElement> wordsInDictionary = driver.findElements(By.xpath("//div[@class='l-wrapper-content l-center ']/div[@class='l-content l-center ']/div[@class='l-content-inner']/div[@id='glossaryPage']/div[@class='dict4-page-inner']/div[@class='sets-list-words hidden']/div[@class='sets-words']/div[@class='dict-item-word  ']"));

И так НЕ работает.

 

А вот так  - работает:

List<WebElement> wordsInDictionary = driver.findElements(By.xpath("//div[@class='dict-item-word  ']"));

Ну, и вопрос - а как правильно? 


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 10 декабря 2015 - 09:44

ну что бы понять нужен html код наверное


  • 0

#3 QuadBit

QuadBit

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

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

Отправлено 10 декабря 2015 - 09:58

Как правильно сказали выше без устройства dom'a подсказать тяжело будет. F12 - клик на элементе, к которому пишете путь. Не знаю, что там подразумевалось в начально примере, но получить элемент, если он не задваивается нигде можно не //div[@class='news__list']/div[@class='news__list__slot'] а //div[@class='news__list__slot'] , посмотрите спецификацию xpath, она элементарна. У вас же излишне перегружен путь, как по мне.


  • 0

#4 seven_sunsets

seven_sunsets

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

  • Members
  • Pip
  • 18 сообщений
  • ФИО:Гришаев Станислав

Отправлено 10 декабря 2015 - 10:21

если класс dict-item-word  ' больше не встречается в коде тогда почему бы просто не использовать 

//*[@class='dict-item-word  ']

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

//*[@class='dict-item-word  '][2]

  • 0



Темы с аналогичным тегами CSS., Xpath

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

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