Как добраться до конца полосы прокрутки в appium? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь автоматизировать прокрутку горизонтальной панели, где элементы панели являются динамическими и извлекаются из API.

Есть ли способ автоматизировать это в appium?

1 Ответ

0 голосов
/ 26 февраля 2019

Если у вас есть какой-либо элемент или текст внизу страницы, вы можете использовать UiAutomator2.

добавить нужную возможность «UiAutomator2», если вы используете appium.

capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");

сейчасиспользуйте функции ниже, если у вас есть идентификатор элемента

 public void scrollByID(String Id, int index) {

        try {

             driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().resourceId(\""+Id+"\").instance("+index+"));")); 

        } catch (Exception e) {
           e.printStackTrace();
        }
    }

Используйте это, если у вас есть текст элемента.

public void scrollByText(String menuText) {

        try {

             driver.findElement(MobileBy.AndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textMatches(\"" + menuText + "\").instance(0));")); 
        } catch (Exception e) {
           e.printStackTrace();
        }
    }

Если вы не знаете ни одного элемента в боттоне, тогда вам нужно использовать экранразмер

public void scrollToBottom() {

      int  x = driver.manage().window().getSize().width / 2;
      int start_y = (int) (driver.manage().window().getSize().height * 0.2);
      int end_y = (int) (driver.manage().window().getSize().height * 0.8);
        TouchAction dragNDrop = new TouchAction(driver)
                        .press(PointOption.point(x,start_y)).waitAction(WaitOptions.waitOptions(Duration.ofMillis(500)))
                        .moveTo(PointOption.point(x, end_y))
                        .release();
        dragNDrop.perform();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...