Как прокручивать в Android с помощью java appium client?

#java #android #mobile #automation #appium

#java #Android #Мобильный #автоматизация #appium

Вопрос:

Я пытаюсь автоматизировать собственное приложение для Android с помощью Appium. Я использую java-клиент для того же. Ниже приведены зависимости, которые я включил. Поскольку я использую версию 7 java-клиента, метод прокрутки и прокрутки не поддерживается. Итак, альтернативно, как мне прокрутить до определенного элемента?? Я наткнулся на некоторые фрагменты кода, использующие класс TouchAction, но я просто хочу знать, есть ли какое-либо альтернативное решение, кроме класса TouchAction?? Зависимость от Maven —

 <dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
</dependency>

<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.0.0</version>
</dependency>
 

Ответ №1:

Вы можете использовать findElementByAndroidUIAutomator с различными условиями, такими как текст, описание:

 ((AndroidDriver<?>) appiumDriver).findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(""  text   "").instance(0))");
 

Ответ №2:

 public MobileElement scrollElementByTextUsingDescription(String scrollableListContDesc, String uiClassSelector, String text) {
        return driver.findElement(MobileBy.AndroidUIAutomator(
           "new UiScrollable(new UiSelector().description(""   scrollableList   ""))"  
           ".getChildByText(new UiSelector().className(""   uiClassSelector   ""), ""   text   "")"));
    }
 

scrollableListContDesc — это AutomationID / продолжение -описание прокручиваемого списка

uiClassSelector — это имя класса прокручиваемого списка, например android.view.View

текст — это текст элемента, до которого вы хотите прокрутить.

Если у вас нет cont-description в прокручиваемом списке, вы можете использовать следующий метод:

 public MobileElement scrollElementByTextUsingId(String scrollableListId, String uiClassSelector, String text) {
            return driver.findElement(MobileBy.AndroidUIAutomator(
               "new UiScrollable(new UiSelector().resourceId(""   scrollableListId   ""))"  
               ".getChildByText(new UiSelector().className(""   uiClassSelector   ""), ""   text   "")"));
        }
 

scrollableListId — это идентификатор / идентификатор ресурса прокручиваемого списка

Ответ №3:

UIScrollable / UISelector — одна из альтернатив TouchActions, которую вы можете использовать для прокрутки / прокрутки. Пример:

 MobileElement element = driver.findElement(MobileBy.AndroidUIAutomator(
            "new UiScrollable(new UiSelector().resourceId("com.android.vending:id/data_view")).scrollIntoView("
              "new UiSelector().textContains("HelloWorld").instance(2))"));
 

В этом сообщении в блоге рассматриваются различные решения для прокрутки / прокрутки.