[РЕШЕНО]Родительские/дочерние элементы в 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

  • 0 Votes
    7 Posts
    617 Views
  • 0 Votes
    2 Posts
    411 Views
  • 0 Votes
    7 Posts
    1208 Views
  • 0 Votes
    2 Posts
    515 Views
  • 0 Votes
    17 Posts
    7954 Views