When you use xpath that is to locate nested elements you have to start your query from .. Like String query = ".//*[contains(@resource-id, 'delivered_indicator')]";
All steps don't work for me, but I have another solution, I just right click adb.exe then go to the previous version. Then problem is solved (for me).
If your adb properties dont have previous version in history, try my adb.exe(remember to backup your adb.exe)
Here my adb.exe : https://www.dropbox.com/s/3o12o2nz2fvhr87/adb%2019.10.2014%20work%20Lacuk001....
If you need both: text file and terminal output:
adb logcat | tee $(date +"logcat_%Y_%m_%d_%H_%M_%S.txt")
adb logcat 1>logcat.txt 2>&1 | type logcat.txt
powershell "adb logcat | tee log.txt"
In modern applications to gain performance not all the content is loaded at once. Option I would suggest is.
Can you scroll to the bottom of the page in the start and then try to find the elements? That way you can be sure that all the elements were loaded.
When querying Android apps with Xpath there is no id attribute. There is a resource-id attribute instead. Appium is doing work behind the scenes to still provide By.id as a locator despite this.
If you don't use contains here, you'll need to put in the full resource-id, which is very long.