Я нашел какой-то обходной путь:
1) Напишите функцию, которая сравнивает два элемента.Поскольку предоставленный метод equals не работает для нативных элементов (Android, iOS), должна быть написана собственная реализация.Я сравниваю наиболее важные атрибуты, такие как класс, идентификатор ресурса и описание контента, а также размер, местоположение и границы.Это должно работать в 99% случаев, если только не присутствуют два одинаковых перекрывающихся элемента.
2) Запрос xpath родительского элемента (findElementsByXpath
) с наиболее точными атрибутами - tagName, class, ID ресурса и contentDescription,В большинстве случаев будет только один элемент, но если их больше, просмотрите список и используйте сравнение на основе функции равенства.
3) Отметьте индексы элементов в списке и всякий раз, когда совпадениенайдено, выполните другой запрос в следующем формате:
(//tagName[@class=... and @resource-id= ...etc...])[index]/child::*
Помните, что индексирование в Xpath начинается с 1. В списке результатов указаны фактические дочерние элементы родительского элемента.
Временное решение несамый быстрый, но все же лучше, чем ничего.