@ Педро Перес Абаллай, привет.
Я бы предложил использовать следующие альтернативы:
(работает только для инструментальных приложений - и для ListViews) - использует внутренний API приложения и аналогичен тому, как scrollIntoView работает в Интернете, хотя требует, чтобы инструментарий не работал на всех типах представлений прокрутки \ экранов
Вариант B:
TouchAction - например,
TouchAction touchAction = new TouchAction(driver);
WebElement phone = driver.findElement(in.Repo.obj("apps.Phone"));
WebElement contact = driver.findElement(in.Repo.obj("apps.Contacts"));
touchAction.press(phone)
.waitAction(200)
.moveTo(contact)
.release()
.perform();
Вариант C: клиент - SwipeWhileNotFound
Опция D: executeScript и укажите, что вы хотите выполнить действие смахивания .
Синтаксис:
driver.executeScript("client:client.swipeWhileNotFound(\"direction\", offset, time);
Пример выполнения прокрутки вверх от границы экрана в течение 500 мс:
driver.executeScript("experitest:client.swipe(\"Up\", 0, 500)");
Параметры:
Направление: Направление, в котором выполняется пролистывание (ВВЕРХ, ВНИЗ, ВЛЕВО, ВПРАВО)
Смещение: положение на экране, где начинается свайп
Время: продолжительность пролистывания (ниже = ускорение пролистывания)
Обратите внимание
Значения (время \ смещение) обычно рассчитываются как параметры из размера экрана устройства, например, -
int offset = driver.manage().window().getSize().getHeight() / 2; // start from mid screen
int time = driver.manage().window().getSize().getHeight() * 0.3; // just an example
Надеюсь, эта помощь,
С уважением,
Евгений