Я хочу прокрутить вниз до определенного элемента, используя appium в Android, java client v-5.0.4 и appium v-1.7.1

Я пытаюсь прокрутить вниз до элемента, смотрел и искал повсюду, и никакой код не помогает прокручивать вниз, я пробовал использовать приведенный ниже код, который, похоже, не работает, кто-то дает мне решение для идеальной прокрутки вниз. Поскольку функции swipe и scrollTo устарели в последней версии Java-клиента, идеальный код поможет мне решить мою ЗАДАЧУ.

package mobileapp.com.example;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.pagefactory.AndroidFindBy;

public class Day5 {

    AndroidDriver<WebElement> driver;

    @AndroidFindBy (uiAutomator = "new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().textContains(\"PHP\"))")
    public WebElement scrollStepOne;

    @BeforeTest
    public void setup() throws MalformedURLException {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("BROWSER_NAME", "Android");
    capabilities.setCapability("VERSION", "6.0.1");
    capabilities.setCapability("deviceName","Nexus 5");
    capabilities.setCapability("platformName","Android");
    capabilities.setCapability("appPackage", "com.vector.guru99");
    capabilities.setCapability("appActivity","com.vector.guru99.BaseActivity");

    driver= new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

    }

    @Test
    public void StartTest() throws InterruptedException {

        //Verify Homepage
        if(driver.findElement(By.id("android:id/action_bar_title")).isDisplayed())
            System.out.println("Home page is displayed");
        else
            System.out.println("Home page is not displayed");

        //step2 - click on Course List tab

        driver.findElement(By.name("Course List")).click();
        System.out.println("Courses list are : ");
        Thread.sleep(3000);

        //Step 3 - darg until PHP course found and click on it
        scrollStepOne.click();
        Thread.sleep(3000);
//      driver.findElement(By.xpath("//android.widget.TextView[@text()='PHP']")).click();
//      Thread.sleep(3333);

        //Step 4 - Click on lesson 1 and verify
        driver.findElement(By.xpath("//android.widget.TextView[@text='What is PHP? Write your first PHP Program']")).click();
        Thread.sleep(3333);

        if(driver.findElement(By.id("com.vector.guru99:id/lesson_title")).isDisplayed())
            System.out.println("First Lesson is displayed");
        else
            System.out.println("First lesson not opened");


    }

    @AfterTest
    public void tearDown() {
        driver.quit();
    }

}

person Gaurav Singh    schedule 23.12.2017    source источник
comment
Можете ли вы указать, какое это приложение: нативное, гибридное или веб-приложение?   -  person barbudito    schedule 24.12.2017
comment
я использую только собственное приложение   -  person Gaurav Singh    schedule 24.12.2017


Ответы (1)


для прокрутки к элементу есть текст как App_Settings, вы можете использовать нижеприведенный

 androidDriver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0))" +
        ".scrollIntoView(new UiSelector().description(\"App_Settings\"));");
person JC .    schedule 26.12.2017
comment
Привет, JC, я использую последнюю версию appium и java-клиента, и в этой версии использование findElementByAndroidUIAutomator обесценилось. Пожалуйста, дайте другой способ прокрутки - person Gaurav Singh; 26.12.2017