Есть ли ссылка на ссылку выше, а в ListView есть атрибуты ресурса или текста?
Я думаю, вы можете попробовать что-то вроде следующего:
xpath="(//android.widget.ListView[contains(@resource-id,'some_id')]//android.widget.View)[2]/android.widget.View"
Попробуйте найти узел, а затем создать относительный путь к ребенку.
// - means any after (any child)
/- goes immediate after
[2] - the second item that corresponds the criteria
, если вы знаете значение текстового атрибута, вы можете использовать что-то вроде: [contains(@text, 'some part of text')]
Нет, он не имеет ресурсы идентификаторов или атрибуты текста. Но просмотр ссылок в терминах имеет контент-desc. Поэтому я использовал driver.findElement (By.xpath ("// android.view.View [@ content-desc = 'Link Link]")). Click(); Теперь мой тестовый пример проходит, но на устройстве нет клика. Должен ли я использовать android.widget.View вместо android.view.View? – Suman
нет, поскольку я вижу андроид.view.View имеет атрибут clickable = true. Постарайтесь подсчитать, сколько элементов соответствует критериям, которые у вас есть на экране. 'List elements = \t \t driver.findElements (By.xpath (" // android.view.View [@ content-desc = 'Terms Link'] ")); \t \t System.out.println (elements.size()); ' –
Alex
также, я бы рекомендовал установить на своих настройках Android-устройства (Разработчики), чтобы показать штрихи и нажатия, чтобы увидеть, где именно скрипт Appium нажимает точно – Alex