Скрипт:
0_1553529459599_Тест - Подстановка переменной в XPATH.xml
Что делает скрипт:
Скрипт заходит на страничку:
https://agroserver.ru/user/248200/
Затем находит блок «Контакты»
Затем перебирает все свойства в блоке «Контакты» (я намеренно упростил действие с каждым свойством - в реальности будет копирование свойства в переменную, но сейчас я поставил просто вывод сообщения в лог)
В чём проблема:
В XPATH не подставляется значение переменной.
Почему я использую такой хитрый XPATH:
Потому что на страничке используются одни и те же html конструкции для блоков «Товары и услуги» и «Контакты». То есть различить их можно только по XPATH с указанием номера div:
XPATH>//div[@class="right"]/div[1]
XPATH>//div[@class="right"]/div[2]
Проблема в том, что на страничке может быть разное количество блоков.
Может быть только один блок «Товары и услуги»:
https://agroserver.ru/user/240930/
А может не быть никаких блоков:
https://agroserver.ru/user/241235
А может быть только только один блок «Контакты»:
https://agroserver.ru/user/248815/
Потому я не могу обратиться сразу к нужному блоку контакты. Приходится перебирать все блоки. А затем, когда нахожу нужный блок, приходится обращаться к этому блоку через XPATH с переменной внутри (ведь я заранее не знаю, какой будет номер div'а у блока «Контакты»).
Думал можно сделать определение по количеству блоков, типа посчитал блоки на странице и если их 2, то обращаюсь ко второму. Однако у меня нет уверенности, что блоки всегда идут по порядку. Может будет ситуация, когда блок Контакты будет первым, а за ним блок «Товары и услуги».
Почему же не работает подстановка переменной в XPATH, @support, @Fox?