Appium выбирает неправильный локатор - PullRequest
0 голосов
/ 15 января 2019

Я тестирую пример приложения Android на телефоне Android 6.0 и использую Appium UI version 1.10.0 и java version "1.8.0_111". Мне нужно нажать на пункт меню «Местоположение офиса», но я не могу найти подходящий локатор.

Вот снимки из Appium Inspector.

Appium Inspector 1

Я также попытался использовать функцию записи в Appium Inspector, которая выводит меня на нужный экран в приложении.

Appium Inspector 2

Однако, когда я использую следующую строку кода в своем проекте, выбирается неправильный пункт меню.

MobileElement el1 = (MobileElement) driver.findElementByXPath("(//android.widget.ImageView[@content-desc=\"73: [Office Locations]\"])[2]");
el1.click();

Я ожидаю, что будет выбран пункт меню «Расположение офисов», вместо этого будет выбран другой пункт меню с другим cont_desc.

Есть предложения?

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Вы можете получить доступ к своему элементу, используя findElementByAccessibilityId , который имеет cont-desc .

MobileElement element= driver.findElementByAccessibilityId("\"73: [Office Locations]\"");
element.click();

Вы можете попросить своего разработчика добавить уникальный код в код.

0 голосов
/ 15 января 2019

вы можете найти элемент с помощью xpath, а в xpath вам нужно указать описание содержимого, которое, я думаю, может помочь

driver.findElementByXPath("//android.view.View[@content-desc='description'].click();

вы указали неверно, следовательно, он не щелкает по описанию содержания, так как вы должны упомянуть его

0 голосов
/ 15 января 2019

Прежде всего попробуйте найти тот же xpath в Инспекторе приложений и проверить, сколько соответствующих элементов он показывает.

Если он показывает только один соответствующий элемент, попробуйте выполнить какое-либо действие с найденным элементом и проверьте, где он выполняет действие.

Также попробуйте использовать идентификатор ресурса, чтобы найти элемент. Если нет для этого элемента, то используйте его родительский элемент или элементы родственного элемента.

Много раз люди ошибочно получают xpath элемента позади фактического элемента и сталкиваются с такой проблемой. Старайтесь избегать сгенерированного xpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...