Я пытаюсь прокрутить до опции «Подарочная карта» на домашней странице «Сделать мою поездку», а затем щелкнуть ее. До сих пор я пробовал ниже два подхода без успеха. Я также прилагаю скриншот домашней страницы приложения для ясности.
Подход 1: использование AndroidUIAutomator для прокрутки до определенного элемента.
driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector()"
+ ".resourceId(\"com.makemytrip:id/rvHomePageIcon\"))"
+ ".scrollIntoView(new UiSelector().textMatches(\"Gift Cards\")"
+ ".instance(0));"));
Результат: Это не прокручивается, а нажимает на опцию «Проживание в семье» в приложении.
Подход 2:
WebElement eleOne = driver.findElement(By.xpath("//*[@text='Flights']"));
WebElement eleTwo = driver.findElement(By.xpath("//*[@text='Gift Cards']"));
TouchAction t = new TouchAction(driver);
t.longPress(longPressOptions().withElement(element(eleOne))
.withDuration(ofSeconds(8))).moveTo(element(eleTwo))
.release().perform();
Результат: Это выдает исключение Nosuch Element Found, так как eleTwo в данный момент не находится в кадре. Я попытался изменить этот подход и ввести eleTwo как элемент, видимый на экране, просто чтобы посмотреть, работает ли прокрутка, и она действительно работает. Но почему-то я не уверен, как обращаться с элементами, которые не видны на экране.
Я хотел бы прокрутить список основных опций, а затем щелкнуть GiftCard, которая является последней опцией в верхнем меню виджетов.
Я использую AppiumDriver с Java-клиентом 7.3.0.