如何使用java appium客户端在android中滚动?

问题描述 投票:0回答:3

我正在尝试使用Appium自动化原生Android应用程序。我正在使用java客户端。以下是我所包含的依赖项。由于我使用的是java客户端的第7版,因此不支持滚动和滑动方法。或者如何滚动到特定元素?我使用TouchAction类遇到了一些代码片段,但我只是想知道除TouchAction类之外是否还有其他解决方案? Maven依赖 -

<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
</dependency>

<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.0.0</version>
</dependency>
java android mobile automation appium
3个回答
2
投票

您可以将findElementByAndroidUIAutomator与不同的条件一起使用,例如文本,描述:

((AndroidDriver<?>) appiumDriver).findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\""+ text + "\").instance(0))");

0
投票
public MobileElement scrollElementByTextUsingDescription(String scrollableListContDesc, String uiClassSelector, String text) {
        return driver.findElement(MobileBy.AndroidUIAutomator(
           "new UiScrollable(new UiSelector().description(\"" + scrollableList + "\"))" +
           ".getChildByText(new UiSelector().className(\"" + uiClassSelector + "\"), \"" + text + "\")"));
    }

scrollableListContDesc是automationId / cont-可滚动列表的描述

uiClassSelector是可滚动列表的类名,例如android.view.View

text是要滚动的元素的文本。

如果在可滚动列表中没有cont-description,则可以使用以下方法:

public MobileElement scrollElementByTextUsingId(String scrollableListId, String uiClassSelector, String text) {
            return driver.findElement(MobileBy.AndroidUIAutomator(
               "new UiScrollable(new UiSelector().resourceId(\"" + scrollableListId + "\"))" +
               ".getChildByText(new UiSelector().className(\"" + uiClassSelector + "\"), \"" + text + "\")"));
        }

scrollableListId是可滚动列表的id / resourceId


-1
投票

UIScrollable / UISelector是TouchActions的一种替代方法,可用于滚动/滑动。例:

MobileElement element = driver.findElement(MobileBy.AndroidUIAutomator(
            "new UiScrollable(new UiSelector().resourceId(\"com.android.vending:id/data_view\")).scrollIntoView("
            + "new UiSelector().textContains(\"HelloWorld\").instance(2))"));

This博客文章涵盖了各种滑动/滚动的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.