Найти элементы с определенным именем класса

для Chrome я устанавливаю ChroPath, чтобы найти элементы на странице.

Я хочу найти XPath для похожих элементов на странице Instagram, но мне кажется, что это не работает:

//span[contains(@class,'glyphsSpriteHeart__outline__24__grey_9 u-__7')] 

также пробую:

/html[1]/body[1]/div[3]/div[1]/div[2]/div[1]/article[1]/div[2]/section[1]/span[1]/button[1]/span[1]

при щелчке селена:

elenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"div._2dDPU.vCf6V div.zZYga div.PdwC2._6oveC article.M9sTE.L_LMM.JyscU div.eo2As section.ltpMr.Slqrh span.fr66n button.coreSpriteHeartOpen.oF4XW.dCJp8 > span.glyphsSpriteHeart__outline__24__grey_9.u-__7"}

как мне найти XPath? какое-нибудь хорошее расширение или что-то в этом роде?

stackoverflow.com/questions/21350605/…
Carlo 1585 10.09.2018 10:37

Поделитесь HTML-кодом или ссылкой на сайт.

cruisepandey 10.09.2018 10:47

@cruisepandey на своей странице в инстаграмм, я хочу лайкнуть фото из интернета

Mehran Goudarzi 10.09.2018 10:53

Вы можете поделиться кодом HTML?

cruisepandey 10.09.2018 10:55

его instagram.com и любые фотографии из Интернета.

Mehran Goudarzi 10.09.2018 10:58
0
5
1 149
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это может помочь: https://selectorgadget.com/

Это тоже, чтобы понять, чем вы манипулируете: https://www.w3schools.com/xml/xpath_syntax.asp

Что касается вашего примера, где вы спускаетесь по дереву, используя номера индексов (например: / html [1] / body [1]), небольшое изменение на сайте приведет к сбою вашего скрипта. Найдите способ построить что-нибудь более надежное! Также обратите внимание на селекторы CSS, если внешний вид вашего объекта известен заранее.

Чтобы получить все кнопки лайков в instagram, используйте селектор css ниже:

span[aria-label="Like"]

Вы можете получить полезную информацию здесь: https://www.w3schools.com/cssref/css_selectors.asp

Ответ принят как подходящий

how can I find XPath? any good extension or something?

Вы не можете «найти» Xpath элемента. Существует множество XPath, которые найдут любой элемент. Одни будут стабильными, другие - нестабильными. Решение о том, какой Xpath использовать, основано на вашем понимании и опыте работы с Selenium, а также на понимании того, как написано и ведет себя тестируемое приложение.

Если вы ищете инструмент для экспериментов с разными XPath, тогда встроенная в Chrome консоль инструментов разработчика позволяет тестировать как Xpath, так и CSS-селекторы; enter image description here

В вашем конкретном сценарии поиска элементов по имени класса CSS Selector - гораздо лучший выбор, чем XPath, поскольку селекторы CSS будут обрабатывать несколько классов как массив, а XPath видит «класс» как буквальную строку, поэтому вам нужно использовать « содержит".

Другие вопросы по теме