java - Android 本机应用程序 - 如何获取类 android.view.view 中的文本
问题描述
我是新手,正在尝试自动化应用程序。我正在打开一个加载动态文本的页面(例如:一本书),它具有以下 XML 源,
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy index="0" class="hierarchy" rotation="0" width="1080" height="1794">
<android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
<android.view.ViewGroup index="0" package="name" class="android.view.ViewGroup" text="" resource-id="android:id/decor_content_parent" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
<android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" resource-id="android:id/content" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
<android.widget.RelativeLayout index="0" package="name" class="android.widget.RelativeLayout" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
<android.widget.RelativeLayout index="0" package="name" class="android.widget.RelativeLayout" text="" resource-id="name:id/main_reader_layout" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
<android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" resource-id="name:id/animation_body" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true">
<android.widget.FrameLayout index="0" package="name" class="android.widget.FrameLayout" text="" resource-id="name:id/video_view_container" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true" />
<android.view.View index="1" package="name" class="android.view.View" text="" resource-id="name:id/highlight_link_view" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true" />
***<android.view.View index="2" package="name" class="android.view.View" text="" resource-id="name:id/curl_ogl_view" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,0][1080,1794]" displayed="true" />***
</android.widget.FrameLayout>
<android.widget.FrameLayout index="1" package="name" class="android.widget.FrameLayout" text="" resource-id="name:id/bookmark_region" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[972,0][1080,289]" displayed="true" />
<android.widget.TextView index="2" package="name" class="android.widget.TextView" text="138 of 218" resource-id="name:id/reader_page_info" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[0,1798][1080,1920]" displayed="true" />
</android.widget.RelativeLayout>
</android.widget.RelativeLayout>
</android.widget.FrameLayout>
</android.view.ViewGroup>
</android.widget.FrameLayout>
</hierarchy>
在哪里
class="android.view.View" text="" resource-id="name:id/curl_ogl_view"
包含文本。
我正在尝试获取文本,然后将其传递给数组或字符串。请让我知道我是否可以获取页面中的文字。
请找到示例代码,
WebElement viewContainer = (WebElement) driver.findElement(By.id("name:id/curl_ogl_view"));
String getTextfromView = ((WebElement)viewContainer).getText().toString();
System.out.println("length::::"+getTextfromView.length());
System.out.println("length::::"+getTextfromView);
当我运行上面的代码时,请找到输出,
[RemoteTestNG] 检测到 TestNG 版本 7.0.0 2020 年 2 月 27 日 1:18:10 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0 信息:检测到的方言:W3C Pass length::::0 length:::: PASSED : 文本测试
================================================= 默认测试
测试运行:1,失败:0,跳过:0
如果需要任何其他信息,请告诉我。
解决方案
class="android.view.View" text="" resource-id="name:id/curl_ogl_view"
根据您的 xml dom,您在上一行中提到的类似乎不包含任何文本。尝试找到包含文本的正确元素。也许您可以分享完整 dom 的链接或其他内容,它会更有帮助。
推荐阅读
- amazon-s3 - Flink:使用 StreamingFileSink 时设置 ACL
- python - 无法设置气流,“启动气流数据库”时出错
- azure - 将 AAD 日志发送到 Azure Monitor 不起作用
- amazon-web-services - 带有 jmeter 服务器的 Amazon ECS 无法在 ip 上连接
- android - 使用房间和 MVVM 对 sqlite 登录进行故障排除
- sql - 在 SQL 中尝试返回与特定用户属于同一组的所有用户
- .net - .NET:为什么不安全选项变得无关紧要?
- r - 如何连续找到第一个非 NA 值?
- jquery - Datatable jquery Html.BeginForm搜索返回json而不是表
- javascript - 在一组帐户中查找重复项