метод прокрутки не выполняет прокрутку в приложении для Android - PullRequest
0 голосов
/ 15 мая 2019

Ниже приведен код:

AndroidDriver androidDriver;

public void scrollDown() {

    androidDriver.getCapabilities().getCapability("hub");

    androidDriver.manage().window().getSize();
    Dimension size = androidDriver.manage().window().getSize();
    int startX = size.width / 2;
    int startY = (int) (size.height * 0.60);
    int endY = (int) (size.height * 0.30);
    new TouchAction(androidDriver).longPress(startX, startY).moveTo(startX, endY).release().perform();

}

Я пытался включить waitAction, но все еще не работает:

new TouchAction(androidDriver).longPress(startX, startY).waitAction(Duration.ofSeconds(3)).moveTo(startX, endY).release().perform();

Я даже пытался включить смахивание, но оно не смахивает:

//        new TouchAction(androidDriver)
//                .press(PointOption.point(startX, startY))
//                .waitAction(WaitOptions.waitOptions(Duration.ofSeconds(3)))
//                .moveTo(PointOption.point(startX, endY))
//                .release().perform();

Обычно startX и startY в longPress подчеркнуты красным, но этот код работал раньше, но теперь я получил красную линию.Другое дело, что я изменил драйвер Android, чтобы он получал возможность от «концентратора», который устанавливается в свойствах Serenity следующим образом (значения xxx out):

webdriver.driver= appium
appium.hub = http://xxx.xxx.xxx.xxx:xxx/wd/hub
appium.automationName=appium
appium.platformName = Android
appium.app= ./xxxdebug.apk
appium.appPackage = xxx.debug
appium.appWaitActivity = xxx.StartupActivity
#appium.browserName =
serenity.take.screenshots= AFTER_EACH_STEP
webdriver.timeouts.implicitlywait = 10000
appium.fullReset=true
appium.noReset=false
logging = "VERBOSE"

Ответы [ 2 ]

2 голосов
/ 15 мая 2019

Я считаю, что ваша проблема заключается в том, что вы не используете параметры PointOption:

    TouchAction touchAction = new TouchAction(driver);

    touchAction.longPress(PointOption.point(startx, starty))
               .moveTo(PointOption.point(endx, endy))
               .release()
               .perform();
0 голосов
/ 15 мая 2019

Вот что я использую в Kotlin:

    fun setScrollViewToTop() {
    android.os.Handler().postDelayed({
        try {
            activity!!.findViewById<ScrollView>(R.id.scrollViewActivity).fullScroll(ScrollView.FOCUS_UP)
        } catch (t: Throwable) {
        }
    }, 125)
}
...