Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как вы справляетесь с тем, что у разных устройств разные экраны?


(Oleksandr Molodetskyi) #1

Написал тест на Appium для андроида для нативного приложения, прогнал на samsung J7 - вроде все норм, но подозреваю, что на устройстве с меньшим экраном будут проблемы, связанные с тем, что некоторые элементы не видны без скролла.
В связи с этим вопрос - как вы справляетесь с такой ситуацией? Для всех элементов, которые могут не помещаться делаете driver.findElements() и если не находятся, то делаете скрол до того как они станут видны?


(Maxim Andryushchenkov) #2

Что-то мне подсказывает что по findElements() они у вас все будут находиться, а вот isDisplayed() будет рейзить.


(Mark Dubrovskyi) #3

findElements() не будет находить элементов, которые не видны, т.к. их нет в layout интерфейса (особенность интерфейса мобильных устройств, равно как и переиспользование ячеек в скролл вьюхах). Лучшее решение - использовать нативные локаторы, которые умеют из коробки работать со ScrollView (UiAutomator для Android, например, XCUITest для iOS)
Например, есть известен ресурс-айди у элемента андроид приложения, то найти можно так

driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().resourceId(YOUR_ID));"));
`