java - Android native 应用程序 - 如何获取 android.view.view 类中的文本

标签 java android selenium selenium-webdriver appium-android

我是一名新手,正在尝试自动化应用程序。我正在打开一个加载动态文本的页面(例如:一本书),该页面具有以下 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] detected TestNG version 7.0.0 Feb 27, 2020 1:18:10 PM io.appium.java_client.remote.AppiumCommandExecutor$1 lambda$0 INFO: Detected dialect: W3C Pass length::::0 length:::: PASSED: texttest

=============================================== Default test

Tests run: 1, Failures: 0, Skips: 0

如果需要任何其他信息,请告诉我。

最佳答案

class="android.view.View"text=""resource-id="name:id/curl_ogl_view"

根据您的 xml dom,您在上一行中提到的类似乎不包含任何文本。 尝试找到包含文本的正确元素。 也许你可以分享完整 dom 的链接或其他内容,这会更有帮助。

关于java - Android native 应用程序 - 如何获取 android.view.view 类中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60427608/

相关文章:

java - 将图像插入 MySQL

testing - Jmeter 与 Selenium

selenium - 开放层的自动化测试可能吗?

java - 顺利进行 ProgressBar 更新

java - 在java中按升序显示字母

android - 将按钮放置在约束布局的底部

android - 如何设置抽屉导航右边距?

android - 适用于 Android 的自动调整 TextView

javascript - selenium webdriver 中的窗口对象是空数组

java - 如何统计 "."在网页中出现的次数?