Appium - как прокручивать вниз с помощью UiAutomator2 и WebdriverIO с React Native (Android) и JavaScript - PullRequest
0 голосов
/ 04 августа 2020

Независимо от того, что я пытаюсь, я не могу заставить мое приложение React Native (Android) прокручивать вниз с помощью Appium.

Я использую UiAutomator2 и WebdriverIO.

Мой код выглядит так:

scrollUntilDisplayed(element: WebdriverIO.Element) {
    const dimensions = driver.getWindowSize();
    touchScroll(10, 100);
}

Вместо touchScroll я пробовал следующие вызовы:

  • driver.touchScroll(offsetX, offsetY) - выдает ошибку (invalid argument: java.lang.IllegalArgumentException: ScrollToModel: The mandatory field 'params' is not present in JSON)
  • driver.touchScroll(offsetX, offsetY, element) - выдает ошибку (invalid argument: java.lang.IllegalArgumentException: ScrollToModel: The mandatory field 'params' is not present in JSON)
  • browser.execute("mobile: scroll", {direction: 'down'}); - выдает ошибку (unknown error: An unknown server-side error occurred while processing the command. Original error: Both strategy and selector arguments must be provided)
  • driver.touchFlick(0, dimensions.height, undefined, 10000, 10000, 10000); - ничего не делает; сидит до истечения времени ожидания Appium
  • element.scrollIntoView(); - ничего не делает

1 Ответ

0 голосов
/ 04 августа 2020

Поскольку ReactNative имеет контекст NATIVE_APP (как обычное приложение Android), вы можете использовать селектор uiautomator :

const bottomElementSelector = `new UiScrollable(new UiSelector().scrollable(true)).scrollIntoView(new UiSelector().text("Element label text"))`
const bottomEl = $(`android=${bottomElementSelector}`)

Поиск элемента с прокручиваемым селектором должен перемещать фокус вниз к этому элементу

Примечание: убедитесь, что вы используете UiAutomator2 в возможностях Appium

...