#java #android #testing #xpath #appium
#java #Android #тестирование #xpath #appium
Вопрос:
Очень новое для тестирования Android.
Я наткнулся на этот Xpath
xpath: (//android.widget.ImageView[1])[3]
Я знаю, что в ImageView 1 «1» — это индекс элемента.
Что здесь [3]???
Обновить:
Я запускаю тест (мобильное приложение). Указанный выше XPath заключается в том, чтобы нажать на значок звонка.
Он отлично нажал на значок звонка.
Но сегодня, когда я запускаю свой тест, он не нажимает на значок звонка, вместо этого он нажимает на изображение профиля пользователя.
Используя appium, я нашел xpath значка колокольчика, как показано ниже:
xpath: /hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[1]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[1]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ImageView
Теперь, когда я использую этот новый xpath, нажимается значок колокольчика.
Являются ли оба Xpath одинаковыми??
Почему этот новый xpath такой длинный? есть ли способ сократить это??
Любая помощь действительно ценится!!!
Комментарии:
1.
[3]
является ли номер вхождения2. @JaSON Пожалуйста, проверьте мой обновленный вопрос. Был бы очень признателен за ваш вклад в это.
Ответ №1:
Выражение //android.widget.ImageView[1]
выбирает каждое android.widget.ImageView
, которое является первым дочерним элементом своего родителя. В общем случае это приведет к выбору набора узлов. [3]
Выбирается третий узел в этом наборе.
Комментарии:
1. Спасибо. Пожалуйста, проверьте мой обновленный вопрос. Был бы очень признателен за ваш вклад в это.
2. Извините, ваш новый вопрос выходит за рамки моей области знаний.
Ответ №2:
Вы получаете абсолютный xpath, используя appium (который вы указали выше) и тот, который вы используете, как // android.widget.ImageView[1])[3] является относительным xpath значка.
Абсолютный xpath: это путь от корневого элемента к конкретному элементу. Относительный xpath: это ссылочный путь к элементу или конкретный путь к элементу.
Ответ №3:
Попробуйте получить доступ к кнопке bell, используя имя класса.
(//*[@class=»Имя класса»])[2]
(//*[@class="android.widget.ImageView"])[2]