Найти элементы с определенным именем класса - PullRequest
0 голосов
/ 10 сентября 2018

для хрома, я устанавливаю 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?Любое хорошее расширение или что-то?

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

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

span[aria-label="Like"]

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

0 голосов
/ 10 сентября 2018

как мне найти XPath? Любое хорошее расширение или что-то?

Вы не можете "найти" Xpath элемента. Есть много, много XPath, которые найдут любой элемент. Некоторые будут стабильными, другие будут нестабильными. Решение о том, какой Xpath использовать, зависит от вашего понимания и опыта работы с Selenium, а также от понимания того, как написано и ведет себя тестируемое приложение.

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

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

0 голосов
/ 10 сентября 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...