[РЕШЕНО]Родительские/дочерние элементы в Xpath. Как их выцеплять или совмещать?
-
Всем привет! Пожалуйста подскажите кто шарит
Пользуюсь в BAS модулем Андроид Менеджер. Вначале делаю действие "Проверить существование элемента", где в качестве искаемого элемента вбиваю //android.widget.TextView[@text="[[DONOR_USER]]"] (где DONOR_USER это имя пользователя, в нашем случае будет ⛱Ashley⛱). Если элемент найден, то он переходит к следующему действию. Следующее действие это "Клик по Xpath". Но тут заключается загвоздка и моя проблема, которую я не могу решить. Кликнуть по предыдущему элементу (напоминаю, //android.widget.TextView[@text="[[DONOR_USER]]"] ) не вариант, так как ни к чему не приведет, поэтому нужно клинуть по //android.widget.ImageView. Но так как они оба (//android.widget.TextView и //android.widget.ImageView) являются дочерними элементами android.view.ViewGroup, в один запрос я запихать не могу, так как не знаю как это сделать. Подскажите пожалуйста, как в одном запросе одновременно указать два дочерних элемента, один из которых (//android.widget.TextView[@text="[[DONOR_USER]]"]) указывает на какой элемент обратить внимание, а другой (//android.widget.ImageView) указывает куда нажать, если это вообще возможно?Если это всё таки невозможно. То тут возникает второй вопрос. Как по такому запросу " //android.widget.TextView[@text="[[DONOR_USER]]"] " можно узнать родительский элемент android.view.ViewGroup, а точнее его index (в нашем случае он равен 5, но таких в одном дампе может быть больше шести)? Вот грубо говоря, у меня есть xml дамп, и как мне выцепить индекс родительского элемента зная только один из дочерних?
Вырезку из XML дампа прикрепляю ниже(файл, код и ссылка), а еще ниже полный дамп (файл и ссылка)
P.S. Пожалуйста, объясните доступным языком, и чтобы решение этого вопроса было в самом басе, без прибегания сторонних софтов
XML дамп.txt
XML дамп вырезка.txtВырезка из дампа:
<android.view.ViewGroup index="5" package="cc.pac.androidapp" class="android.view.ViewGroup" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,1061][720,1221]" displayed="true"> <android.view.View index="0" package="cc.pac.androidapp" class="android.view.View" text="" resource-id="cc.pac.androidapp:id/item_divider" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[32,1061][720,1062]" displayed="true" /> <android.widget.ImageView index="1" package="cc.pac.androidapp" class="android.widget.ImageView" text="" resource-id="cc.pac.androidapp:id/iv_friend_avatar" checkable="false" checked="false" clickable="true" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[32,1093][128,1189]" displayed="true" /> <android.widget.TextView index="2" package="cc.pac.androidapp" class="android.widget.TextView" text="⛱️Ashley⛱️" resource-id="cc.pac.androidapp:id/tv_friend_name" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[160,1101][480,1144]" displayed="true" /> <android.widget.TextView index="3" package="cc.pac.androidapp" class="android.widget.TextView" text="Malaysia" resource-id="cc.pac.androidapp:id/tv_friend_country" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[160,1152][480,1185]" displayed="true" /> </android.view.ViewGroup>https://pastebin.com/RceVb97C (полный дамп)
https://pastebin.com/8vD8SUDv (вырезка примера из дампа) -
Решил, нашел ответ как правильно построить Xpath. Это оказывается называется сестринские элементы. Вот ссылка, где нашел как правильно построить запрос при использовании сестринских элементов https://stackoverflow.com/questions/3139402/how-to-select-following-sibling-xml-tag-using-xpath