2016-11-09 2 views
0

Моя цель - прокрутить вниз по выпадающему списку до тех пор, пока не появится состояние, такое как TN. Это было возможно в Appium, когда были применены методы scrollTo(), но они устарели в текущей сборке Appium. Я попробовал driver.swipe(), но ничего не происходит. Я не очень хорошо разбираюсь в iOS Predicates, но пытался использовать их тоже.Appium: Как прокрутить вниз вниз в приложении iOS с помощью Java

enter image description here

Альтернативы пытался до сих пор, но никто не работал:

# 1

MobileElement element = wd.findElementByIosUIAutomation(
       ".tableViews()[0]" + ".scrollToElementWithPredicate(\"name CONTAINS 'TN'\")"); 
     element.tap(1, 1); 

# 2:

JavascriptExecutor js = (JavascriptExecutor) wd; HashMap <String, String> scrollObject = new HashMap <String, String>(); 
scrollObject.put("element", ((RemoteWebElement) 
wd.findElementByAccessibilityId("TN")).getId()); js.executeScript(
"mobile: scroll", scrollObject); 
+0

Сделал это в Android, но не получил ни малейшего представления для IOS. Проверьте эту ссылку для тестов в источнике appium, который показывает переход к тексту с помощью прокрутки. https://github.com/appium/java-client/blob/master/src/test/java/io/appium/java_client/ios/IOSScrollingSearchingTest.java – Grasshopper

+0

Спасибо, но я уже пробовал 'scrollByDriver()' вчера & это тоже не сработало. Когда он говорит ** Slider ** означает ли это текст, который нужно искать, или это что-то еще? –

+0

Не уверен в этом, но Slider в тесте относится к имени внутреннего элемента в прокручиваемом контейнере. Вы пробовали scrollByElement(). Вы можете найти варианты, т.е. с помощью метода findElement посредством IOSUiAutomation. – Grasshopper

ответ

0

Хорошо, я понял, решение, но это было очень трудно найти, учитывая отсутствие решений:

String path = "UIATarget.localTarget().frontMostApp().mainWindow().popover().tableViews()[0].cells()[\"TN\"]"; 
driver.executeScript(path + ".scrollToVisible();"); 

MobileElement state = driver.findElementByIosUIAutomation(path); 
state.tap(1, 1); 
0

Может у ou попробовать это?

String uiAutoLocator = ".tableViews()[0].firstWithPredicate(\"name CONTAINS 'TN'\")"; 
driver.executeScript(uiAutoLocator + ".scrollToVisible();"); 

Убедитесь, что локатор uiAutoLocator приводит к элементу.

Смежные вопросы