Я сегодня весь день пытаюсь пофиксить 1 селектор. Спасибо тебе, дружище! Я посмотрела 2 минуты видео и наконец то подружилась с xpath-ми благодаря тебе :)
Хоть все это и знал, но посмотрел с большим удовольствием, хорошо объясняешь. Кстати, на Википедии вполне годное руководство, по которому можно начать составлять пассы на продвинутом уровне.
Добрый день! Первое значение Второе значение Третье значение //div[@class='new'] Если клыссы одинаковые в поиске все три значения. Как из них выбрать например второе. Подскажите пожалуйста, никак не могу разобраться.
@@IlyaGTGT Получилось таким способом (//div[@class='new'])[2] т.е xpath выражение, возвращает елемент. его заключаем в круглые скобки, а в конце добавляем нужный нам элемент (xpath_выражение)[2] Я вас правильно понял? Другие два способа я не совсем понял.
@@vika4193 Я что-то не совсем понимаю куда делся мой комментарий, где я прикладывал хпассы. В общем, когда пишем .//div[@class='new' and position()=2], то мы просим взять второй подходящий элемент внутри его родительского контейнера. Вариант, который Вас устроил, просто находит сначала все элементы, подходящие по условиям, а затем из них берет второй. Это разные вещи, но в вашем случае должно работать одинаково. Точка перед двойными слешами - указание на то, что искать нужно относительно родительского элемента (в то время когда без точки поиск идет от корневого тега). У меня на проекте почти все локаторы с точкой, мне так гораздо удобнее и более универсально.
ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); driver = new ChromeDriver(options); теряешь время на открытие браузера на весь экран, что бы сразу во весь экран стартовал.
00:30 А если не full XPath использовать, а просто XPath, там когда Copy нажимаем, два варианта. Чем плох просто XPath? В нем и id есть, при наличии, да и короче он. Мне вообще очень дополнение ChroPath понравилось, удобное, вот такой XPath выдал по кнопке Регистрация //span[contains(text(),'Регистрация')]
@@АндрейСац-щ7е Надо понимать для чего у нас программный код: чтобы тестировать или чтобы как можно стабильнее кликало. В первом случае лучше брать узлы иерархии ключевых элементов, такие как table, td или li, а во втором конечно id в приоритете :)
не могли бы мне пожалуйста подсказать, как правильно найти путь, мучаюсь уже долго( 57 - число, которое вводится, оно всегда меняется) 57 Буду очень благодарна
Спасибо за такое подробное обьяснения материала. Но есть одно но. Сможет ли подсказать много уважаемый автор канала. Если в коде классы имеют одинаковое название к разным елементам с разными текстовыми значениями, как тогда к нему обратиться? В примере на разметке 17:56 найдено два класса если представить, что классы у них одинаковые а текстовые значения нет. По идее //span[@class='название класа'] /[1] Но так не работает. как из двух обратиться к одному?
Мне удалось нагуглить следующий способ: (//span[@class=‘class_name’])[1] - XPath первого элемента (//span[@class=‘class_name’])[2] - XPath второго элемента И т.д. Не ручаюсь, что это оптимальный вариант и ,как выразился автор, вас за такое не уволят, но выбрать разные по счету превью видео с главной страницы ютуба получилось.
Блин, вот говоришь "молодым спецам" учите XML, а они "а зачем?", а потом ищут видео по XPath. Наверно буду, при приёме на работу, требовать знание XML СУБД (Там и XML, и XSLT, и Xpath, и XQuery).
Посмотрел меньше 5-ти минут и получил ответы на все вопросы!! Это круче, чем ответ на главный вопрос жизни, вселенной и вообще!!
P.S. смотрю до конца
Мои тесты станут намного лучше после просмотра этого видео. Спасибо тебе большое! )
спасибо братан, все понятно и простым языком, лучший )))
Я сегодня весь день пытаюсь пофиксить 1 селектор. Спасибо тебе, дружище! Я посмотрела 2 минуты видео и наконец то подружилась с xpath-ми благодаря тебе :)
Все чётко, понятно и не какой дичайшей академинщины (от которой тошнит). Автору респект!
Я твои примеры напечатал и на стену повесил. Теперь быстрее запоминаю.
Столько времени пытался понять как нормально пользоваться xpath. После 5 минут просмотра все встало на свои места. Респект за видос!
Просто лучшее видео Я ПРЯМ В ВОСТОРГЕ.
Думал что-то не договорят или не расскажут, мол самому искать снова придется, а тут есть все что надо! АААААА
а еще и текст это просто супер. Я не видел его в блокнотик писал, чтобы не забыть.
Автор прекрасен, спасибо за это видео!🙏
Над подачей ещё стоит поработать, но мне видео помогло. Спасибо.
Очень все понятно и доступно, большое спасибо!!!!!
спасибо большое. Долго ждал и искал такие объяснения по локаторам
Спасибо, просветил вкупе с другим ютубером лучше, чем это сделал платный курс..
Спасибо огромное! Это божественно!
Это невероятно!!! Я все понял и применил! Чувак, я хочу от тебя детей
Согласен с каждым словом) !
Спасибо большое, было очень полезное видео
Друг ты красава ! Спасибо !
Спасибо тебе еще раз. Это было крутое разъяснение что такое XPATH. Готовлюсь к интервью на тестировщика ПО и ты мне очень помог!!! так держать
да и кстати у меня сегодня 19 марта 2022 года. я посмотрела у тебя было 22. 02. 2020 год
Спасибо братан!!! То что искал я нашел...
видео супер. большое спасибо!
Спасибо автору за видео!
Спасибо за видео и ссылки.
Хоть все это и знал, но посмотрел с большим удовольствием, хорошо объясняешь. Кстати, на Википедии вполне годное руководство, по которому можно начать составлять пассы на продвинутом уровне.
Добрый день!
Первое значение
Второе значение
Третье значение
//div[@class='new']
Если клыссы одинаковые в поиске все три значения. Как из них выбрать например второе.
Подскажите пожалуйста, никак не могу разобраться.
Спасибо вам большое за помощь
@@vika4193 Получилось?
@@IlyaGTGT Получилось таким способом (//div[@class='new'])[2]
т.е xpath выражение, возвращает елемент.
его заключаем в круглые скобки, а в конце добавляем нужный нам элемент (xpath_выражение)[2]
Я вас правильно понял?
Другие два способа я не совсем понял.
@@vika4193 Я что-то не совсем понимаю куда делся мой комментарий, где я прикладывал хпассы. В общем, когда пишем .//div[@class='new' and position()=2], то мы просим взять второй подходящий элемент внутри его родительского контейнера. Вариант, который Вас устроил, просто находит сначала все элементы, подходящие по условиям, а затем из них берет второй. Это разные вещи, но в вашем случае должно работать одинаково. Точка перед двойными слешами - указание на то, что искать нужно относительно родительского элемента (в то время когда без точки поиск идет от корневого тега). У меня на проекте почти все локаторы с точкой, мне так гораздо удобнее и более универсально.
Красава!
очень классное видео. Спасибо
Топчег
Ооо.. Роха
Видел тебя недавно
Большое спасибо!!!
Реально чувак ты крут зачет!
Спасибо! Все чётко и понятно
спасибо большое!!!
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
driver = new ChromeDriver(options);
теряешь время на открытие браузера на весь экран, что бы сразу во весь экран стартовал.
спасибо
00:30 А если не full XPath использовать, а просто XPath, там когда Copy нажимаем, два варианта. Чем плох просто XPath? В нем и id есть, при наличии, да и короче он. Мне вообще очень дополнение ChroPath понравилось, удобное, вот такой XPath выдал по кнопке Регистрация //span[contains(text(),'Регистрация')]
Спасибо, очень круто
Спасибо. Все понятно. Лайк 513
Спасибо!
спасибо за видео. а почему не берешь id-шку если она есть вместо xpath? ID же самый лучший селектор по приоритету
Действительно id лучше по приоритету, но ролик то про XPath)
id самый худший селектор, особенно когда вы имеете дело с процедурно строящимися GUI, в браузере (а такие есть). Я бы Вас на работу не взял =)
@@pmak6074 а вы на работе по какому селектору ищете тогда в приоритете, если не секрет?)
@@АндрейСац-щ7е Надо понимать для чего у нас программный код: чтобы тестировать или чтобы как можно стабильнее кликало. В первом случае лучше брать узлы иерархии ключевых элементов, такие как table, td или li, а во втором конечно id в приоритете :)
Здравствуйте. Как можно с вами связаться не в чате ю туба. С уважением, Виталий.
не могли бы мне пожалуйста подсказать, как правильно найти путь, мучаюсь уже долго( 57 - число, которое вводится, оно всегда меняется)
57
Буду очень благодарна
Спасибо за такое подробное обьяснения материала. Но есть одно но. Сможет ли подсказать много уважаемый автор канала. Если в коде классы имеют одинаковое название к разным елементам с разными текстовыми значениями, как тогда к нему обратиться?
В примере на разметке 17:56 найдено два класса если представить, что классы у них одинаковые а текстовые значения нет.
По идее //span[@class='название класа'] /[1]
Но так не работает. как из двух обратиться к одному?
Мне удалось нагуглить следующий способ:
(//span[@class=‘class_name’])[1] - XPath первого элемента
(//span[@class=‘class_name’])[2] - XPath второго элемента
И т.д.
Не ручаюсь, что это оптимальный вариант и ,как выразился автор, вас за такое не уволят, но выбрать разные по счету превью видео с главной страницы ютуба получилось.
Но правильно искать по классам, да?
а если значение (текст) меняется всегда? Как найти тогда?
А если в проекте span меняется на div?
В закладки!
Eсли у элемента есть 'id' Зачем его добавлять в 'xpath' если можно сразу по 'id' найти, find by.id
Когда новые видосы? #Вернись
Блин, вот говоришь "молодым спецам" учите XML, а они "а зачем?", а потом ищут видео по XPath. Наверно буду, при приёме на работу, требовать знание XML СУБД (Там и XML, и XSLT, и Xpath, и XQuery).
Ещё пусть html все выучат до 5 версии, мало ли, интернет отключат, а знать нужно....
хороший урок. где посмотреть список элементов запросов с доходчивым описанием?
//div[contains(., "Входящие") ] выдало 18 элементов, а //div[contains(text(), "Входящие") ] 1 элемент - не понятно!
спасибо, что поделились
Спасибо!