首页 > 解决方案 > Appium 在尝试使用 xpath 在滚动视图中找到它时给出空响应

问题描述

我目前是 appium 的新手。我正在尝试单击我的应用程序的滚动视图中的一个项目,其中元素由 xpath 找到。

MobileElement el11 = (MobileElement) driver.findElementByXPath(
                "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[4]/android.view.ViewGroup[2]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[7]/android.view.ViewGroup[2]/android.widget.TextView");
        System.out.println(el11.getText().equalsIgnoreCase("View More"));
        el11.click();
        System.out.println("Tap performed");

在第一个 syso 声明中,我变得真实。和 seocnd syso 语句我正在执行点击。

但是在appium服务器日志里面。click() 函数返回 null。当我试图点击 appium 检查器内的项目时,点击结果会进入另一个页面的导航。

请帮忙

标签: testngappiumappium-androidtestng-eclipseappium-desktop

解决方案


要单击可滚动视图中的任何元素,最好使用 UIAutomator 选择器,首先找到它并将其滚动到视口可见区域,然后您可以单击。

MobileElement el11 = (MobileElement) driver.findElement(MobileBy.AndroidUIAutomator(
        "new UiScrollable(new UiSelector().scrollable(true).instance(0))" +
         ".scrollIntoView(new UiSelector().text(\"View More\"))"));
el11.click();

附带说明一下,按文本搜索是一种不好的方法,因为您可能会将它放在不同的标签中。尽可能尝试使用资源 ID


推荐阅读