Как делать клик (XPath) по старшему брату, при наличии определенного имени у меньшего брата?

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Всем доброго времени суток. Помогите, пожалуйста.
Мне нужно сделать клик XPath по блоку(старшего брата)
Код:
//button[@aria-label="asset action button"]
, если его нижний блок (меньший брат)
Код:
//asset-card[@data-analytics-id="list_userInventory"]//i[@inlinesvg="icon-logo.svg"]
- будет найден.
53959
Как это возможно сделать?
 

Вложения

  • 7,6 КБ Просмотры: 3

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
я же вам давал ссылки на обучение по xpath. там про оси рассказывают , показывают, пишут. и на статью конкурсную то же ссылка была....
 
  • Спасибо
Реакции: orka13

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Зачем тогда форум, если есть статьи, википедия, гугл и оф.сайт по xpath?
я же вам давал ссылки на обучение по xpath. там про оси рассказывают , показывают, пишут. и на статью конкурсную то же ссылка была....
 
Последнее редактирование:

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Зачем тогда форум, Если есть статьи, википедия, гугл и офф.сайт по xpath?
Затем, что очень скоро вам перестанут помогать, т.к. не извлекаете никаких выводов из информации, которую вам пишут.

C#:
.//*[@data-analytics-id='list_userInventory']/descendant::*/button
Инфа по xPath.
 
Регистрация
27.09.2019
Сообщения
69
Благодарностей
44
Баллы
18
Затем, что очень скоро вам перестанут помогать, т.к. не извлекаете никаких выводов из информации, которую вам пишут.

Инфа по xPath.
было желание в одном из тредов топикстартера отписаться, но увидел, что человеку уже дали несколько удочек, а он всё рыбы просит
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Для чего мы тогда ходим в учебные учреждения, если есть теория в интернете? Зачем практика, если есть теория?
Это то же самое, что вам дать удочку - и не показать на практике как ловить, на что ловить, куда бросать, в какую пору года, как вытаскивать, чем подцепить.
Это то же самое, что вам сказали построить дом - дали Инструкцию, цемент и все остальное - строй.

Пока не будет конкретной помощи по конкретным моментам, которые интересуют человека, пока ему не ткнут носом, как же ложить той или иной кирпич, или замесить цемент - теория к одному месту. Не, ну конечно, если есть лишние кирпичи, цемент и время....можно и поучится и схалтурить.


было желание в одном из тредов топикстартера отписаться, но увидел, что человеку уже дали несколько удочек, а он всё рыбы просит



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

По отдельности такие слова как p/descendant-or-self::* # контекстный узел и все его потомки - вообще ничего не говорит. И что я с этого должен понять, как мне в моей ситуации построить верно путь? Сколько раз повторить, вот вы - умеете учить теорию, я вообще не понимаю, как вы это делаете. Я учусь по заданиям кода - которые я пишу в боте и мне помогают реализовать кодом, после чего я разбираю что и как делать.

В этом коде не присутствует брат
Код:
//asset-card[@data-analytics-id="list_userInventory"]//i[@inlinesvg="icon-logo.svg"]
C#:
.//*[@data-analytics-id='list_userInventory']/descendant::*/button
Это снова нужно понимать, как вписать его самому, так как вам сложно показать, как будет картина целиком?
Затем, что очень скоро вам перестанут помогать, т.к. не извлекаете никаких выводов из информации, которую вам пишут.

C#:
.//*[@data-analytics-id='list_userInventory']/descendant::*/button
Инфа по xPath.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
А вы в школу сразу в десятый класс пришли? Или может, сначала научились писать, читать, складывать, делить, заучили терминологию, применяли методы выполняя многочисленные домашние задания, получали двойки за незнание простейших грамматических правил, например, что корень "лож" без приставки не употребляется?
И это еще даже не десятая часть возникаюших вопросов.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Я вот одного не понимаю. Есть четко поставленный вопрос. Вместо четкого ответа, мы сейчас философствуем на тематики, на которые у каждого свой правильный ответ. Если вам тяжело ответить по теме, зачем вообще что-либо писать не по теме? Спасибо за попытки навести на путь - иди учи с 0 - но это не по моей части, когда нужно зарабатывать прямо сейчас, так как денег на 0. Не хотите отвечать прямо на поставленный вопрос - пожалуйста, не заходите в мои темы, я же никого не заставляю, не тратте свое драгоценное время на демагогию - там, где вопросы касаются программирования. Надеюсь на понимание и хорошего вам настроения!
А вы в школу сразу в десятый класс пришли? Или может, сначала научились писать, читать, складывать, делить, заучили терминологию, применяли методы выполняя многочисленные домашние задания, получали двойки за незнание простейших грамматических правил, например, что корень "лож" без приставки не употребляется?
И это еще даже не десятая часть возникаюших вопросов.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Я вот одного не понимаю. Есть четко поставленный вопрос. Вместо четкого ответа, мы сейчас философствуем на тематики, на которые у каждого свой правильный ответ. Если вам тяжело ответить по теме, зачем вообще что-либо писать не по теме? Спасибо за попытки навести на путь - иди учи с 0 - но это не по моей части, когда нужно зарабатывать прямо сейчас, так как денег на 0. Не хотите отвечать прямо на поставленный вопрос - пожалуйста, не заходите в мои темы, я же никого не заставляю, не тратте свое драгоценное время на демагогию - там, где вопросы касаются программирования. Надеюсь на понимание и хорошего вам настроения!
Полагаю вашим ответом все сказано. Вот только потребительское отношение в нашем комьюнити не в чести.
Для меня вы теперь с особом списке и никакой помощи с моей стороны вы не получите. Удачи.
 
  • Спасибо
Реакции: Gunjubasik

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Я так понял, автор ничего не понял и понимать не собирается. На последок скажу, что в первую очередь должно быть самообучение, а не надеяться, что кто - то будет решать за вас ваши проблемы.
Вы хоть понимаете грань между помощью и решением вопроса до готового вида ? Вот Вы как раз просто олицетворение того типа людей , который садиться на шею реши один раз за них их проблемы.
И если вдруг кто подумает, что я тут стебаюсь и только и могу что отправлять в священный поиск, то могу сказать что в предыдущих постах , практически аналогичных постов , автору были даны готовые решения, а так же ссылки где все по этой теме разжевано на уровне школьной программы. А каждый раз когда у автора возникнет один и тот же вопрос , у меня желания впрягаться за него , увы и ах , отсутсвует.
За сим расшаркиваюсь, и прощайте уважаемый автор.
 
  • Спасибо
Реакции: Gunjubasik

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 228
Благодарностей
784
Баллы
113
Не извлекать инфы - это когда один и тот же вопрос задается несколько раз, по крайней мере в моем понимании, а когда я спрашиваю каждый раз разные вопросы одной и той же тематики - это называется - постепенно вхожу в курс дела, что и как делается.
В вашем случае это выглядит примерно так:
Вопрос: сколько будет 2 * 2?
Ответ: 4
Вопрос: 2 * 3?
Ответ: 6
Вопрос: 2 * 4?
Ответ: выучи один раз таблицу умножения и подобные вопросы отпадут

У вас из темы в тему один и тот же вопрос в контексте разных ситуаций. Таких ситуаций бесконечное множество. Путь решения один - выучить принцип работы с путями xpath. С начало теорию, затем закреплять практикой - так построен процесс обучение во всех сферах.
А уж тем более в IT без способности к самообучению делать нечего от слова совсем
 
  • Спасибо
Реакции: orka13

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
У меня есть проблема - на форуме спросил как ее решить. Не хотите помочь - зачем писать про теорию в сотый раз, особенно когда до вас про нее написали 2 раза точно?(Вопрос риторический.)
Если я создаю темы не по правилам или что-то нарушаю, пусть администрация сообщит мне в личку.

Если все в порядке и ничего не нарушаю, могу ли я, по возможности дождаться человека, который мне сможет помочь и решить поставленный мною вопрос? Или каждую тему, я буду выслушивать про теорию и снова расписывать про финансовые проблемы, про ботов, которые уже работают написанные мною и с помощью подсказок людей на форуме? Я таким методом научился писать на UOPilot графических ботов - тоже говорили, ты так ничего не научишься... Говорили что не напишу на зенно так ботов - научился. Сейчас я просто хочу что бы мне помогли.

Если вы не понимаете, что есть разные типы людей, одни из которых могут выучить теорию, вторые - вроде меня - не могут этого сделать физически, так как руки из одного места, зато развита логическая цепочка по материалам, которые уже готовы, я сижу в свободное время и разбираю, как и что делалось и убирая в коде некоторые элементы - смотрю что и как за что отвечает - по возможности читаю форум, смотрю видеоуроки по программированию. Но сейчас проблема со временем, так как боты, которые сейчас кормят, не совсем исполняют всю роль, которая позволит освободиться меня немного и выделять внимание хобби(программированию), приходится все делать на ходу!

Поэтому, пожалуйста, не готовы помочь или лень - ну не пишите вы не по теме. Заранее, очень вам благодарен за понимание и хорошего вам время проведения!


В вашем случае это выглядит примерно так:
Вопрос: сколько будет 2 * 2?
Ответ: 4
Вопрос: 2 * 3?
Ответ: 6
Вопрос: 2 * 4?
Ответ: выучи один раз таблицу умножения и подобные вопросы отпадут

У вас из темы в тему один и тот же вопрос в контексте разных ситуаций. Таких ситуаций бесконечное множество. Путь решения один - выучить принцип работы с путями xpath. С начало теорию, затем закреплять практикой - так построен процесс обучение во всех сферах.
А уж тем более в IT без способности к самообучению делать нечего от слова совсем
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Не хотите помочь - зачем писать про теорию в сотый раз
Ты путаешь помощь и попрошайничество. Решение твоих проблем лежит в плоскости платного раздела, если тебе лень потратить час изучив вопрос, чтобы не задавать более однотипных вопросов.
Если ты не понимаешь, что они однотипные, то тебе на это уже указало множество людей.
 
  • Спасибо
Реакции: orka13 и zortexx

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Так все-таки, ваш код не полон и сюда нужно вставить меньшего брата, верно? /descendant:: - отвечает за элемент на который я хочу кликать, или за элемент, который я ищу дополнительным?
C#:
.//*[@data-analytics-id='list_userInventory']/descendant::*/button
Ты путаешь помощь и попрошайничество. Решение твоих проблем лежит в плоскости платного раздела, если тебе лень потратить час изучив вопрос, чтобы не задавать более однотипных вопросов.
Если ты не понимаешь, что они однотипные, то тебе на это уже указало множество людей.
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
C#:
.//*[@inlinesvg='icon-logo.svg']/ancestor::*[@data-analytics-id='list_userInventory']/descendant::*/button
/ancestor:: - Подняться вверх.
/descendant:: - Спуститься вниз.
 
  • Спасибо
Реакции: Gunjubasik

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Жизнь людей ничему не учит. Недавно участвовал в двух последних темах автора где ему подсказывают что именно подучить надо чтобы не косячить на ровном месте в своих задачах, но и там полно отмазок что "удочки не надо. Вы лучше дайте рыбу и отстаньте".
Форум это не телеграм-чатик, не надо его засирать однотипными темами с базовыми вопросами!
 
  • Спасибо
Реакции: zortexx

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Еще раз - огромнейшее вам спасибо за помощь - очень спасли этими кодами - у меня начало получатся.
C#:
.//*[@inlinesvg='icon-logo.svg']/ancestor::*[@data-analytics-id='list_userInventory']/descendant::*/button
/ancestor:: - Подняться вверх.
/descendant:: - Спуститься вниз.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 788
Благодарностей
1 952
Баллы
113
Но сейчас проблема со временем
Так может проще тогда купить/оплатить чужое время и получить готовое решение, если не хотите или не имеете свободного времени на изучение и практику работы с нюансами xpath по тем ответам, которые получили.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Доброго времени суток. Подскажите, пожалуйста, сделал я Xpath выражение по вашему примеру:
C#:
//asset-card[@data-analytics-id="list_userInventory"]//img[@alt="Black"]/ancestor::*//asset-card[@data-analytics-id="list_userInventory"]//button
Условия: - если снизу основного искомого кода есть брат, у которого имя Black, тогда кликаем по кнопке button которая находится на 2 строки выше.

Все работает, вот только маааленькая загвоздка. button ищет не только в блоке основного кода, где находится брат - Black, но и в других подобных блоках выше, за пределами основного кода. А как сделать, что бы он не искал button (не заходило за рамки основного кода), дальше чем находится его брат Black?

Cмотрел за кодом с помощью Dev Tool - так именно в /ancestor::* отвечает за подъем до начала * - умножение (как пишет Вики), как же можно делать подъем, не до начала кода страницы, а лишь на 1 или несколько строчек кода выше?

Заранее, очень благодарен за ответ.



C#:
.//*[@inlinesvg='icon-logo.svg']/ancestor::*[@data-analytics-id='list_userInventory']/descendant::*/button
/ancestor:: - Подняться вверх.
/descendant:: - Спуститься вниз.
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
как же можно делать подъем, не до начала кода страницы, а лишь на 1 или несколько строчек кода выше?
Код:
a/i/parent::p           # непосредственный родитель, <p>
p/ancestor::*           # все родители (http://bit.ly/1ta7mh9)
p/following-sibling::*  # все следующие братья
p/preceding-sibling::*  # все предыдущие братья
p/following::*          # все следующие элементы кроме потомков (http://bit.ly/1ta83H5)
p/preceding::*          # все предыдущие элементы кроме предков
p/descendant-or-self::* # контекстный узел и все его потомки
p/ancestor-or-self::*   # контекстный узел и все его предки
 
  • Спасибо
Реакции: Gunjubasik

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)