testng - 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 检查器内的项目时,点击结果会进入另一个页面的导航。
请帮忙
解决方案
要单击可滚动视图中的任何元素,最好使用 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
推荐阅读
- service-worker - 获取服务人员
- php - 部分文件更改了 PhpStorm 背景颜色
- composer-php - Drupal Composer 需求无法解析为一组可安装的包
- python - sudo -H pip install 和 pip --user install 的区别
- c# - ASP.NET Core 2.1 Web API - ConfigurationManager.ConnectionStrings 返回 null
- swift - Eureka - DateRow 加载日期而不更改其当前值
- java - 从 Oracle JDK 迁移到 OpenJDK
- python - 嵌套的 dict 键被覆盖
- javascript - 本地存储中 >100Mb 的数据
- javascript - 如果有新请求则取消请求(承诺)