如何使用Java Appium Client在Android中滚动?

时间:2019-04-14 15:51:55

标签: java android mobile automation appium

我正在尝试使用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>

3 个答案:

答案 0 :(得分:2)

您可以将 findElementByAndroidUIAutomator 用于不同的条件,例如文本,说明:

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
</head>
<body>
    <img src="{{f}}" alt="f">
</body>
</html>

答案 1 :(得分: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

     

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

如果滚动列表中没有续描述,则可以使用以下方法:

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 /资源ID

答案 2 :(得分:-1)

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

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博客文章介绍了多种可很好地滑动/滚动的解决方案。