Проблема при щелчке элементов с использованием класса и индекса - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь написать код для автоматического DM людей в Instagram.Я застрял при получении кода для нажатия на кнопку DM.

В UIautomatorviewer нет текста или идентификатора ресурса, поэтому я попытался использовать класс.

enter image description here

Когда я запускаю код, он не нажимает на нужную вещь.На нее нажимает кнопка СЛЕДУЮЩАЯ .

Вот код -

By path2 = By.xpath("//android.widget.ImageView[@index='3']"); 
driver.findElement(path2).click(); 
Thread.sleep(5000);

Может кто-нибудь помочь?Я новичок в этом, поэтому я не очень опытный.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

На основе экрана UIAutomator Viewer вы также можете использовать content-desc, как показано ниже

By path2 = By.xpath("//android.widget.ImageView[contains(@content-desc,'Message')]");
driver.findElement(path2).click();
0 голосов
/ 24 февраля 2019

Поскольку я не вижу весь XML, я не могу точно сказать, что вы сделали неправильно, но, вероятно, ваш xpath неверен.С UIAutomatorViewer вы можете сохранить XML, а затем протестировать свой xpath на нем.Или с XMLSpy, или с онлайн-инструментом, таким как https://www.freeformatter.com/xpath-tester.html.

Вероятно, есть еще android.widget.ImageView с index = 3, и я думаю, что appium выбирает первый?Таким образом, вы можете изменить свой xpath на более уникальный, например:

//android.widget.FrameLayout//android.widget.LinearLayout//android.widget.ImageView[@index='3']"
...