Какой лучший способ прокрутки вверх / вниз на основе определенного локатора в эмуляторе Android? - PullRequest
0 голосов
/ 02 марта 2020

Я перепробовал все доступные на Inte rnet, но ни один не работает.

Использование Appium 1.15 и Java -Клиента 7.0.0.

Проблема в том, Если используется

driver.findElementByAndroidUIAutomator("new UiScrollable( new UiSelector().scrollable(true).instance(0)).scrollIntoView"+"(new UiSelector().text(\"" + text + "\").instance(0))");

, то прокрутка продолжается до конца страницы, а затем происходит сбой. Для меня «текст» - это не просто кнопка или текстовое поле. Это может быть простой нефункциональный текст на странице, ниже которой будет отображаться раскрывающийся список.

В другом подходе:

TouchAction action = new TouchAction((PerformsTouchActions) driver);
    WebElement phone = driver.findElement(start);
    WebElement contact = driver.findElement(end);
    action.press((PointOption) phone)
    .waitAction()
    .moveTo((PointOption) contact)
    .release()
    .perform();

Сбой при поиске самого элемента. Это означает, что он не начинается со строки: driver.findElemet (start), потому что этот элемент расположен в нижней части экрана, где мне нужно прокрутить до.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 05 марта 2020

Если локаторы элементов верны и вы подтверждаете это, попробуйте использовать команду driver.flick(). Это сделать то же самое без ожидания. «Время ожидания» (которое вы определяете с помощью аргумента «Продолжительность» в любых функциях класса прокрутки) имеет множество прболем с различным размером экрана устройства.

Например: у вас есть 3 элемента страницы: A, B, C вы пытаетесь прокрутить от A до B с размером экрана 5 ". Этот же код может прокручиваться от A до C в 7 "размере экрана! Поэтому driver.flick () решает эту проблему.

...